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
