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