Coba perhatikan record yang akan diupdate akan sebanyak 1.783.455.

Dengan cara pertama dibutuhkan 2x eksekusi perintah SQL, sehingga 2 x 1.783.455 
= ???? eksekusi kedatabase.

Dengan cara kedua saya hanya butuh sekali eksekusi perintah sql.

Jadi saya lebih suka cara kedua, karena estimasi waktu yang dibutuhkan akan 
lebih singkat


  ----- Original Message ----- 
  From: IdiOot 
  To: [email protected] 
  Sent: Friday, June 13, 2008 9:59 AM
  Subject: [indoprog-vb] metode Update Tabel


  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



   

[Non-text portions of this message have been removed]

Kirim email ke