Hari ini mari kita bicara tentang properti objek Recordset
1. Atribut CursorType
AdOpenForwardOnly: Hanya meneruskan kursor, nilai default. Sama seperti kursor statis, hanya saja ia hanya dapat menggulir maju melalui catatan. Gunakan untuk meningkatkan kinerja ketika hanya diperlukan pergerakan satu arah dalam kumpulan rekaman. (Sesuai dengan namanya, kursor ini hanya dapat bergerak maju. Namun karena fungsinya yang terbatas, maka sangat efisien bila digunakan dengan sumber daya sistem.)
AdOpenKeyset: Kursor set kunci. Meskipun rekaman yang dihapus oleh pengguna lain tidak dapat diakses dari kumpulan rekaman Anda, kursor kumpulan kunci mirip dengan kursor dinamis kecuali rekaman yang ditambahkan oleh pengguna lain tidak dapat dilihat. Data yang diubah oleh pengguna lain masih dapat dilihat. (Kursor KeySet memungkinkan Anda melihat perubahan yang dibuat oleh pengguna lain sejak perubahan tersebut dibuat, namun Anda tidak dapat melihat rekaman yang ditambahkan atau dihapus oleh pengguna lain.)
AdOpenDynamic: kursor dinamis. Dapat melihat penambahan, perubahan, dan penghapusan yang dilakukan oleh pengguna lain. Semua jenis perpindahan dalam kumpulan data diperbolehkan, kecuali untuk operasi penanda yang tidak didukung oleh penyedia. (Jenis kursor ini sangat kuat dan menghabiskan sebagian besar sumber daya sistem. Kursor dinamis dapat melihat semua perubahan dalam kumpulan catatan yang disimpannya. Pengguna yang menggunakan Kursor dinamis dapat melihat pengeditan, penambahan, dan penghapusan yang dilakukan oleh pengguna lain. Jika Penyedia data itu membiarkan kursor jenis ini mendukung visibilitas ini dengan mengambil data dari sumber data secara berkala tentu akan membutuhkan banyak sumber daya.)
AdOpenStatic: kursor statis. Salinan statis dari kumpulan catatan yang dapat digunakan untuk menemukan data atau menghasilkan laporan. Selain itu, penambahan, perubahan, atau penghapusan yang dilakukan oleh pengguna lain tidak terlihat. (Kursor kelas Statis hanyalah cuplikan data. Artinya, ia tidak dapat melihat perubahan yang dibuat pada RecordSet oleh pengguna lain sejak dibuat. Dengan jenis kursor ini, Anda dapat menavigasi maju dan mundur. Karena kesederhanaannya, Persyaratan sumber daya lebih kecil dari Dinamis!)
Catatan: Setelah RecordSet dibuka, Anda tidak dapat mengubah properti CursorType. Namun, jika Anda menutup RecordSet terlebih dahulu, mengubah properti CursorType, lalu membuka kembali RecordSet, Anda masih dapat mengubah jenis kursor secara efektif!
2. Atribut LockType Dalam aplikasi database apa pun yang dapat dimodifikasi oleh banyak pengguna secara bersamaan, Anda harus menghadapi situasi yang mungkin terjadi ketika banyak pengguna beroperasi pada catatan yang sama pada waktu yang sama. Jika hal ini terjadi, integritas data akan terganggu karena satu pengguna mungkin tanpa sadar menimpa perubahan orang lain saat menyimpan perubahannya sendiri. Saat itu, Anda akan merasa seolah-olah tidak melakukan apa pun. Untuk menangani situasi ini. ADO memungkinkan Anda menentukan jenis kontrol kejadian bersamaan saat memperbarui objek RecordSet, dan cara mengunci rekaman oleh pengguna saat dia sedang mengedit. Ini ditentukan oleh atribut LockType. Atribut ini memiliki empat nilai:
adLockReadonly: Nilai default, hanya baca. Data tidak dapat diubah. (Ini adalah nilai default dari RecordSet. Jika Anda mengatur metode penguncian ke nilai ini, Anda tidak akan dapat memperbarui Recordset.)
adLockPessimistic: Penguncian catatan konservatif (entri demi entri). Penyedia melakukan tindakan yang diperlukan untuk memastikan keberhasilan pengeditan rekaman, biasanya dengan segera mengunci rekaman di sumber data setelah pengeditan. (Jika diatur ke jenis kunci ini, catatan akan dikunci dan hanya dapat diakses oleh pengguna yang mengedit antara waktu pengeditan dimulai dan saat pembaruan catatan dikirimkan ke penyedia data!)
adLockOptimistic: Buka penguncian rekaman (record-by-record). Penyedia menggunakan penguncian terbuka, mengunci catatan hanya ketika metode Pembaruan dipanggil. (Catatan dikunci hanya pada saat data diserahkan ke penyedia data.)
adlockBatchOptimistic: buka pembaruan batch. Digunakan untuk mode pembaruan batch dibandingkan dengan mode pembaruan langsung. (RecordSet yang diatur ke mode penguncian jenis ini akan disebut mode pembaruan batch dari RecordSet. Ini dapat mempercepat kecepatan pembaruan RecordSet untuk mengubah data, tetapi karena beberapa catatan diperbarui pada saat yang sama, itu juga akan memperburuk masalah yang terkait dengan akses bersamaan!)
3, properti AbsolutePage
Atribut AbsolutePage menetapkan nomor halaman di mana catatan saat ini berada; gunakan atribut PageSize untuk membagi objek Recordset menjadi halaman logis jumlah catatan). Perlu dicatat di sini bahwa tidak semua penyedia data mendukung atribut ini, jadi gunakanlah dengan hati-hati.
Sama seperti properti AbsolutePosition, properti AbsolutePage dimulai dengan 1. Jika record saat ini adalah baris pertama dari Recordset, AbsolutePage adalah 1. Anda dapat mengatur properti AbsolutePage untuk berpindah ke baris pertama rekaman pada halaman tertentu.
4. Atribut AbsolutePosition Jika Anda perlu menentukan posisi indikator saat ini di RecordSet, Anda dapat menggunakan atribut AbsolutePosition.
Nilai atribut AbsolutePosition adalah posisi indikator saat ini relatif terhadap perdagangan pertama, dimulai dari 1, yaitu AbsolutePosition dari perdagangan pertama adalah 1.
Perhatikan bahwa saat mengakses RecordSet, tidak ada jaminan bahwa RecordSet akan muncul dalam urutan yang sama setiap saat.
Untuk mengaktifkan AbsolutePosition, Anda harus mengaturnya terlebih dahulu agar menggunakan kursor klien (penunjuk): rs.CursorLocation=3
5. Atribut PageCount Gunakan atribut PageCount untuk menentukan berapa banyak "halaman" data yang disertakan objek Recordset. "Halaman" di sini adalah kumpulan catatan data dengan ukuran yang sama dengan pengaturan properti PageSize. Meskipun jumlah catatan pada halaman terakhir lebih kecil dari nilai PageSize, halaman terakhir juga dianggap sebagai halaman. Jumlah Halaman. Perlu diperhatikan bahwa tidak semua penyedia data mendukung atribut ini.
6. Atribut Ukuran Halaman
Atribut PageSize adalah kunci untuk menentukan cara menampilkan halaman ketika ADO mengakses database. Anda dapat menggunakannya untuk menentukan berapa banyak catatan yang membentuk "halaman" logis. Menetapkan dan membuat ukuran halaman yang memungkinkan perpindahan ke rekaman pertama halaman logis lain menggunakan properti AbsolutePage. Properti PageSize dapat diatur kapan saja.
7. Atribut RecordCount Ini juga merupakan atribut yang sangat umum digunakan dan penting. Kita sering menggunakan atribut RecordCount untuk mengetahui berapa banyak record yang terdapat dalam objek Recordset. Gunakan properti RecordCount untuk menentukan jumlah rekaman dalam objek Recordset. Properti ini mengembalikan –1 ketika ADO tidak dapat menentukan jumlah rekaman, atau jika penyedia atau tipe kursor tidak mendukung RecordCount. Membaca properti RecordCount pada Recordset tertutup akan menghasilkan kesalahan. Jenis kursor pada objek Recordset mempengaruhi apakah jumlah record dapat ditentukan. Properti RecordCount mengembalikan -1 untuk kursor maju saja, jumlah sebenarnya untuk kursor statis atau kursor keyset, dan -1 atau jumlah sebenarnya untuk kursor dinamis bergantung pada sumber data.
8. Atribut BOF dan EOF. Biasanya kita menulis kode pada program ASP untuk mengecek atribut BOF dan EOF, sehingga dapat mengetahui letak RecordSet yang saat ini ditunjuk oleh indikator Objek Recordset berisi rekaman atau Mengetahui apakah baris rekaman yang dipindahkan telah melampaui jangkauan objek Recordset.
Jika posisi record saat ini berada sebelum baris pertama objek Recordset, properti BOF akan mengembalikan nilai true, jika tidak maka akan mengembalikan false.
Jika posisi record saat ini berada setelah baris terakhir objek Recordset, properti EOF akan mengembalikan nilai true, jika tidak maka akan mengembalikan false.
(Baik BOF dan EOF adalah True, menunjukkan bahwa tidak ada catatan dalam RecordSet.)
9. Atribut Filter menentukan kondisi penyaringan untuk data dalam Recordset. Gunakan atribut Filter untuk secara selektif memblokir catatan dalam objek Recordset yang difilter akan menjadi kursor saat ini.
Hal ini akan mempengaruhi properti lain berdasarkan nilai pengembalian kursor saat ini, seperti AbsolutePosition, AbsolutePage, RecordCount, dan PageCount, karena mengatur properti Filter ke nilai
tertentu
akan memindahkan rekaman saat ini ke rekaman pertama yang memenuhi nilai baru.
Saya pikir atribut ini cukup berguna. Terkadang setelah kita membuka Recordset dan membuat penilaian tertentu, kita ingin memfilter catatan, yaitu menyesuaikan kembali pernyataan SQL. Haruskah kita menutup Recordset dan membukanya dengan pernyataan SQL baru? Tidak, kami menggunakan atribut Filter untuk memfilter, misalnya
rs.open exec,sambungan,1,1
jika .... maka rs.filter="nama='xxx'"
alih-alih
rs.open exec,sambungan,1,1
jika... maka
rs.tutup
exec=exec&" di mana nama='xxx'"
rs.open exec,sambungan,1,1
berakhir jika
Faktanya, Filter harus digunakan di banyak tempat. Ini akan disebutkan di masa depan keterampilan ASP Anda juga dapat memikirkannya.
Besok kita akan melanjutkan pembicaraan tentang metode objek Recordset.