Objek Recordset (ADO)

Mewakili seluruh kumpulan rekaman dari tabel dasar atau hasil perintah yang dijalankan. Kapan saja, objek Recordset hanya merujuk ke satu rekaman dalam set sebagai rekaman saat ini.

Keterangan

Anda menggunakan objek Recordset untuk memanipulasi data dari penyedia. Saat Anda menggunakan ADO, Anda memanipulasi data hampir seluruhnya menggunakan objek Recordset . Semua objek Recordset terdiri dari rekaman (baris) dan bidang (kolom). Bergantung pada fungsionalitas yang didukung oleh penyedia, beberapa metode atau properti Recordset mungkin tidak tersedia.

ADODB. Recordset adalah ProgID yang harus digunakan untuk membuat objek Recordset . Aplikasi yang ada yang mereferensikan ADOR yang sudah kedaluarsa. Recordset ProgID akan terus berfungsi tanpa kompilasi ulang, tetapi pengembangan baru harus mereferensikan ADODB. Recordset.

Ada empat jenis kursor berbeda yang ditentukan dalam ADO:

  • Kursor dinamis Memungkinkan Anda melihat penambahan, perubahan, dan penghapusan oleh pengguna lain; memungkinkan semua jenis gerakan melalui Recordset yang tidak bergantung pada marka buku; dan mengizinkan marka buku jika penyedia mendukungnya.

  • Kursor set kunci Ber perilaku seperti kursor dinamis, kecuali itu mencegah Anda melihat rekaman yang ditambahkan pengguna lain, dan mencegah akses ke rekaman yang dihapus pengguna lain. Perubahan data oleh pengguna lain masih akan terlihat. Ini selalu mendukung marka buku dan karena itu memungkinkan semua jenis gerakan melalui Recordset.

  • Kursor statis Menyediakan salinan statis dari sekumpulan rekaman untuk Anda gunakan untuk menemukan data atau menghasilkan laporan; selalu mengizinkan marka buku dan oleh karena itu memungkinkan semua jenis gerakan melalui Recordset. Penambahan, perubahan, atau penghapusan oleh pengguna lain tidak akan terlihat. Ini adalah satu-satunya jenis kursor yang diizinkan saat Anda membuka objek Recordset sisi klien.

  • Kursor terusan saja Memungkinkan Anda untuk hanya menggulir ke depan melalui Recordset. Penambahan, perubahan, atau penghapusan oleh pengguna lain tidak akan terlihat. Ini meningkatkan performa dalam situasi di mana Anda hanya perlu membuat satu melewati Recordset.

Atur properti CursorType sebelum membuka Recordset untuk memilih jenis kursor, atau lewati argumen CursorType dengan metode Buka . Beberapa penyedia tidak mendukung semua jenis kursor. Periksa dokumentasi untuk penyedia. Jika Anda tidak menentukan jenis kursor, ADO akan membuka kursor hanya maju secara default.

Jika properti CursorLocation diatur ke adUseClient untuk membuka Recordset, properti UnderlyingValue pada objek Bidang tidak tersedia di objek Recordset yang dikembalikan. Saat digunakan dengan beberapa penyedia (seperti Penyedia ODBC Microsoft untuk OLE DB bersama dengan Microsoft SQL Server), Anda dapat membuat objek Recordset secara independen dari objek Koneksi yang ditentukan sebelumnya dengan meneruskan string koneksi dengan metode Buka. ADO masih membuat objek Koneksi , tetapi tidak menetapkan objek tersebut ke variabel objek. Namun, jika Anda membuka beberapa objek Recordset melalui koneksi yang sama, Anda harus secara eksplisit membuat dan membuka objek Koneksi ; ini menetapkan objek Koneksi ke variabel objek. Jika Anda tidak menggunakan variabel objek ini saat membuka objek Recordset Anda, ADO membuat objek Koneksi baru untuk setiap Recordset baru, bahkan jika Anda melewati string koneksi yang sama.

Anda dapat membuat objek Recordset sebanyak yang diperlukan.

Saat Anda membuka Recordset, rekaman saat ini diposisikan ke rekaman pertama (jika ada) dan properti BOF dan EOF diatur ke False. Jika tidak ada rekaman, pengaturan properti BOF dan EOF adalah True.

Anda dapat menggunakan metode MoveFirst, MoveLast, MoveNext, dan MovePrevious ; metode Pemindahan ; dan properti AbsolutePosition, AbsolutePage, dan Filter untuk memposisikan ulang rekaman saat ini, dengan asumsi penyedia mendukung fungsionalitas yang relevan. Objek Recordset hanya maju hanya mendukung metode MoveNext . Saat Anda menggunakan metode Pindahkan untuk mengunjungi setiap rekaman (atau menghitung Recordset), Anda dapat menggunakan properti BOF dan EOF untuk menentukan apakah Anda telah berpindah di luar awal atau akhir Recordset.

Sebelum menggunakan fungsionalitas objek Recordset , Anda harus memanggil metode Dukungan pada objek untuk memverifikasi bahwa fungsionalitas didukung atau tersedia. Anda tidak boleh menggunakan fungsionalitas saat metode Dukungan mengembalikan false. Misalnya, Anda dapat menggunakan metode MovePrevious hanya jika Recordset.Supports(adMovePrevious) mengembalikan True. Jika tidak, Anda akan mendapatkan kesalahan, karena objek Recordset mungkin telah ditutup dan fungsionalitas tidak tersedia pada instans. Jika fitur yang Anda minati tidak didukung, Dukungan juga akan mengembalikan false. Dalam hal ini, Anda harus menghindari memanggil properti atau metode yang sesuai pada objek Recordset .

Objek recordset dapat mendukung dua jenis pembaruan: langsung dan batch. Segera diperbarui, semua perubahan pada data ditulis segera ke sumber data yang mendasar setelah Anda memanggil metode Pembaruan . Anda juga dapat meneruskan array nilai sebagai parameter dengan metode AddNew dan Update dan secara bersamaan memperbarui beberapa bidang dalam rekaman.

Jika penyedia mendukung pembaruan batch, Anda dapat membuat cache penyedia berubah menjadi lebih dari satu rekaman lalu mengirimkannya dalam satu panggilan ke database dengan metode UpdateBatch . Ini berlaku untuk perubahan yang dibuat dengan metode AddNew, Update, dan Delete . Setelah memanggil metode UpdateBatch , Anda dapat menggunakan properti Status untuk memeriksa konflik data apa pun untuk mengatasinya.

Catatan

Untuk menjalankan kueri tanpa menggunakan objek Perintah , teruskan string kueri ke metode Buka objek Recordset . Namun, objek Perintah diperlukan saat Anda ingin mempertahankan teks perintah dan menjalankannya kembali, atau menggunakan parameter kueri.

Properti Mode mengatur izin akses.

Kumpulan Bidang adalah anggota default objek Recordset . Akibatnya, dua pernyataan kode berikut setara.

Debug.Print objRs.Fields.Item(0)  ' Both statements print   
Debug.Print objRs(0)              '  the Value of Item(0).  

Saat objek Recordset diteruskan di seluruh proses, hanya nilai set baris yang di-marshalled, dan properti objek Recordset diabaikan. Selama membatalkan nama, set baris dibongur ke dalam objek Recordset yang baru dibuat, yang juga mengatur propertinya ke nilai default.

Objek Recordset aman untuk pembuatan skrip.

Bagian ini berisi topik berikut.

Lihat juga

Objek Koneksi (ADO)
Koleksi Bidang (ADO)
Kumpulan Properti (ADO)
Lampiran A: Penyedia