Tanya dong..
Ini kan dengan kondisi update data menggunakan batch.
Bagaimana dengan update data yang menggunakan query ? Apakah fungsi LockType 
dan CursorType nya sama ? Dan apakah termasuk "Recordset Terputus" juga ?
Saya biasanya menggunakan LockType adLockOptimistic, CursorType nya Static 
(kecuali untuk report atau untuk isi ComboBox, pakai ForwardOnly)

Thanks atas sharingnya
Liung's
www.apktntajd.com (Ape Kate Ente Aje Deh!)

  ----- Original Message ----- 
  From: Lilis 
  To: [email protected] 
  Sent: Tuesday, November 27, 2007 7:52 AM
  Subject: [Programmer-VB] Tips n Triks membangun aplikasi dgn Recordset 
Terputus


  hallo temen2,

  kali ini aku coba mau kasih materi kuliah deh :-) sapa tau aja ada yg mau 
  minta les private
  hihihihihih,.....

  judul materi ini adalah " Recordset Terputus "

  mungkin sudah ada temen2 yg paham dan mungkin juga belum ada yang paham 
  tentang recordset terputus.
  terkadang kalo programmer membangun suatu sistem client server, si 
  programmer ga memikirkan
  bahwa kadang user males utk log off dari sistem nya. sehingga seharian 
  kadang aplikasi nya
  masih terus berjalan. nah ini menyebabkan server terus menerus "mengadakan 
  hubungan" dgn
  user tsb, coba bayangkan jika ada lebih dari 10 user yang tidak mau log off 
  maka tentulah
  kinerja server jadi agak "lelet" krn harus terus menerus membuka koneksi ke 
  user padahal sudah
  tidak diperlukan.

  tapi dengan adanya teknologi recordset terputus, (bahkan VB .Net sdh 
  mendefault kan teknologi ini)
  maka beban server bisa berkurang sekalipun si user itu tetap ga mau log off 
  atau menutup
  aplikasi nya.

  ada tiga property dari type recordset yg bisa digunakan
  1. CursorLocation
  2. CursorType
  3. LockType

  property CursorLocation menandai dimana cursor recordset itu dibuat. apa sih 
  arti cursor?
  istilah cursor sebenarnya identik dengan sebutan table, jadi boleh dikatakan 
  bahwa cursor
  itu bisa juga disebut table.
  CursorLocation apabila tdk di definisikan maka defaultnya adalah server 
  (adUseServer).
  apabila CursorLocation ditentukan pada sisi server maka semua lalulintas 
  operasi data
  diserahkan sama server. krn semua proses dikerjakan dl server inilah 
  CursorLocation jenis
  server lebih lamban dibandingkan dengan cursor yg berbasiskan - client 
  karena hnya menyediakan
  akses tunggal.
  berbeda apabila cursor nya berbasis client, semua proses dikerjakan pada 
  client itu sendiri,
  sehingga beban server tidaklah terlalu "megap-megap" krn ngurusin lalu 
  lintas data dari
  bebrapa client. (bisa dibayangkan kan?)
  nah dari gambaran inilah maka dipilihlah CursorLocation yg ideal utk 
  membangun suatu
  Recordsest Terputus yaitu adUseClient.

  setelah kita tentukan CursorLocation nya, maka kita tentukan jenis cursornya 
  untuk menyediakan
  suatu perubahan pada recordset.

  ada 4 jenis perubahan cursor (CursorType) ini yaitu:
  1. Dynamic
  2. KeySet
  3. Static
  4. Forward-only

  masing2 cursor memang punya kelebihan dan kekurangan, tapi krn skrng aku 
  lagi bicara tentang
  recordset terputus maka ga semuanya dibahas :-(

  dari ke4 CursorType diatas, type Static adalah CursorType satu2nya yang 
  cocok dgn CursorLocation
  berbasis client. CursorType Static adalah jenis cursor yang perubahanya 
  tidak langsung bisa
  dilihat apabila ada operasi Insert, Update, atau Delete pada data. utk 
  melakukannya harus
  dikenakan perintah updatebatch.

  nah, selesai kita mendefinisikan CursorTypenya, selanjutnya adalah 
  menentukan penguncian
  recordset yg dinamakan dgn LockType. LockType adalah tipe dari penguncian 
  yang digunakan saat
  operasi update dikerjakan ke database.
  ada 4 type kunci ini yaitu:
  1. adLockReadOnly
  2. adLockPessimistic
  3. adLockOptimistic
  4. adLockBatchOptimistic

  karena kita sedang membicarakan recordset terputus maka penguncian 
  adLockBatchOptimistic
  satu2nya yg dibutuhkan dlm teknologi ini. yaitu suatu proses peng update-tan 
  yang dikerjakan
  dengan cara batch shg perubahan recordset tsb dikirim ke server dgn cara 
  updatebatch.
  masih ingat kan mata kuliah komunikasi data sewaktu kuliah?
  ada 3 cara proses transfer data: online, offline dan batch
  lalu apa itu batch?

  jadi sebagai kesimpulan nya, recordset terputus dapat didefinisikan dgn cara 
  sbb:
  1. lokasi cursor nya berbasis client
  2. tipe penguncian recordsetnya adalah optimistik batch
  3. jenis cursornya adalah static

  untuk memutuskan sebuah recordset, caranya sangat sederhana yaitu dgn cara 
  mengeset
  active connnection ke nothing.

  berikut ini adalah contoh kode utk membuat recordset terputus.

  private cn as connection
  private rs as recordset

  set cn=new connection
  set rs=new recordset

  cn.provider = "sqloledb"
  cn.open "server=(local);database=northwind;uid=sa;pwd=password"

  with rs
  .cursorlocation = adUseClient
  .Loctype = adLockBatchOptimistic
  .CursorTyp e= adOpenStatic
  .Source = "SELECT * FROM Customers"
  .open

  '--recordset terputus
  Set .ActiveConnection=nothing
  end with

  apabila ada operasi penambahan atau manipulasi yg lain (DML)

  rs.AddNew
  rs.Fields("customerid").Value=Text1.Text
  rs.Fields("CompanyName").Value=Text2.Text

  '--koneksikan kembali
  rs.ActiveConnection=cn
  rs.UpdateBatch

  '----selesai

  ok segitu dulu ya materinya, kalo ada yg perlu diperbaiki atau ditambahkan 
  silahkan saja.
  lilis juga manusia punya keterbatasan. semoga bermanfaat utk programmer 
  indonesia.

  salam
  lilis



   

Kirim email ke