Objek Recordset (ADO)

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

Komentar

Anda menggunakan Recordset objek untuk memanipulasi data dari penyedia. Saat Menggunakan ADO, Anda memanipulasi data hampir seluruhnya menggunakan Recordset objek. Semua Recordset objek 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 pergerakan melalui Recordset yang tidak bergantung pada marka buku; dan mengizinkan marka buku jika penyedia mendukungnya.

  • kursor Keyset Berulah 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 oleh karena itu memungkinkan semua jenis gerakan melalui Recordset.

  • Kursor statis Menyediakan salinan statis dari sekumpulan rekaman yang dapat Anda gunakan untuk menemukan data atau membuat laporan; selalu mengizinkan bookmark dan oleh karena itu memungkinkan semua jenis pergerakan 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 hanya maju 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 pass melalui Recordset.

Atur properti CursorType sebelum membuka Recordset untuk memilih jenis kursor, atau berikan argumen KursorType dengan metode Buka. Beberapa penyedia tidak mendukung semua jenis kursor. Periksa dokumentasi untuk penyedia. Jika Anda tidak menentukan jenis kursor, ADO membuka kursor hanya-terusan 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 Recordset objek secara independen dari objek Koneksi yang ditentukan sebelumnya dengan meneruskan string koneksi dengan metode Open. 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 Recordset objek, 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 EOFTrue.

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

Sebelum menggunakan fungsionalitas objek Recordset, Anda harus memanggil metode Mendukung pada objek untuk memverifikasi bahwa fungsionalitas didukung atau tersedia. Anda tidak boleh menggunakan fungsionalitas saat metode Mendukung 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 di-batch. Dalam pembaruan segera, 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 memiliki perubahan cache penyedia ke 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.

Nota

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 kumpulan baris yang dinamai marshalled, dan properti objek Recordset diabaikan. Selama unmarshalling, kumpulan baris dibongkah 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