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