Koreksi dikit. CMIIW

Sebenarnya ketika koneksi terus dipertahankan ke server, dan user tidak dalam 
keadaan aktif, yg terbebani sebenarnya bukan server, tapi jaringan, karena 
bandwith terpakai terus menerus utk mempertahankan koneksi ke server (terjadi 
transfer paket data utk menunjukkan kalo koneksi ke DBMS masih digunakan), n 
dalam kasus user dgn jumlah besar.

Kemudian, Cursor tidak bisa disamakan dengan tabel. Cursor adalah objek yg 
berisi data yg diambil dari database, dalam kasus ini data bisa saja berasal 
dari sebuah query atau yang lainnya seperti stored procedure.

Next, selama saya menggunakan ADO, setau saya default cursor bukan di server, 
tapi di client (adUseClient).

The Next One, dalam pandangan saya, Cursor KeySet, dan ForwardOnly juga cocok 
digunakan dalam recordset terputus, karena kedua cursor tsb juga berada di 
client. Jadi, data ditransfer ke client. ForwardOnly, berguna kalo kita hanya 
butuh membaca data sepintas lalu (baca: gak maju mundur), very useful for 
simple operation.

And, Finally, sebenarnya objek Connection-nya gak perlu di set ke Nothing. 
Cukup panggil method Close, maka koneksi akan diputuskan dari server, tetapi 
objek masih ada di memory dimana aplikasi dijalankan. Tujuannya, agar ketika 
ingin digunakan kembali (dalam kasus misalnya perekaman data), VB gak usah lagi 
mengalokasikan lokasi di memori utk objek koneksi. Ibaratnya, selesai 
menelepon, gak perlu teleponnya kita bongkar atau dibuang kan, kecuali kalo gak 
bakalan menelepon lagi selamanya. :D

Lilis <[EMAIL PROTECTED]> wrote:                               
.........(dihapus)
 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
..........(dihapus) 




 
                    




Jemmy H. Tecoalu
Personal blog: 
  http://jemmyt.blogspot.com
  http://geeks.netindonesia.net/blogs/jemmy

"The present was affected by the past, and the present will affect the future."


       
---------------------------------
Be a better pen pal. Text or chat with friends inside Yahoo! Mail. See how.

Kirim email ke