Dear All,
Setiap Programmer memiliki karakter, pola berpikir, serta metodenya
masing-masing dalam menerapkan/membuat Aplikasi.
Saya memiliki 2 cara yang berbeda namun memiliki tujuan yang sama
yaitu melakukan update ke tabel master,
Saya akan melakukan insert kedalam tabel master yang isinya merupakan
summary dari tabel detail.
cara pertama yang akan saya lakukan adalah dengan melakukan perintah
eksekusi tersebut pada Program
dan cara kedua adalah melakukan perintah eksekusi tersebut pada
database server.
kedua cara ini memiliki kelebihan dan kekurangannya masing-masing.
Cara 1
Dim rs as New ADODB.Recordset
Dim dbClass as New clsDatabase
Dim SumDetail as Double
dbClass.ConnStr = Bla... Bla... Bla...
' Ambil Data Master dari Item
sql_query = "SELECT * FROM tbl MasterItem"
set rs = dbClass.GetRS("SELECT * FROM tblMasterItem")
For i = 0 To rs.Recordcount - 1
' Ambil Summary dari detail
SumDetail = dbClass.GetSum("qty","tblDetailItem","id_master_item =
" & rs!id_master_item)
dbClass.Execute "UPDATE tblMasterItem SET Stock = " & SumDetail &
" WHERE id_master_item = " & rs!id_master_item
rs.MoveNext
Next i
Cara 2
Dim dbClass as New clsDatabase
dbClass.ConnStr = Bla... Bla... Bla...
sql_query = "UPDATE tblMasterItem SET Stock = dt.SumDetail FROM
tblMasterItem INNER JOIN (SELECT id_master_item, SUM(qty) AS SumDetail
FROM tblDetailItem GROUP BY id_master_item) AS dt ON
tblMasterItem.id_master_item = dt.id_master_item"
dbClass.Execute sql_query
Keduanya menghasilkan result yang sama yaitu
' (1783455 row(s) affected)
tolong berikan masukan cara mana yang menurut anda lebih baik dan
kemukakan alasannya.
Terima Kasih.
Salam,
Aiska Hendra
Programmer (IT Dept.)
PT. Kencana Gemilang