Bagikan melalui


Recordset (ODBC)

Topik ini berlaku untuk kelas MFC ODBC.

Objek CRecordset mewakili sekumpulan rekaman yang dipilih dari sumber data. Rekaman dapat berasal dari:

  • Sebuah tabel.

  • Sebuah kueri.

  • Prosedur tersimpan yang mengakses satu atau beberapa tabel.

Contoh kumpulan rekaman berdasarkan tabel adalah "semua pelanggan," yang mengakses tabel Pelanggan. Contoh kueri adalah "semua faktur untuk Joe Smith." Contoh kumpulan rekaman berdasarkan prosedur tersimpan (kadang-kadang disebut kueri yang telah ditentukan sebelumnya) adalah "semua akun yang menunggak," yang memanggil prosedur tersimpan di database back-end. Kumpulan rekaman dapat menggabungkan dua tabel atau lebih dari sumber data yang sama, tetapi bukan tabel dari sumber data yang berbeda.

Catatan

Beberapa driver ODBC mendukung tampilan database. Tampilan dalam pengertian ini adalah kueri yang awalnya dibuat dengan pernyataan SQL CREATE VIEW .

Kemampuan Recordset

Semua objek kumpulan rekaman berbagi kemampuan berikut:

  • Jika sumber data tidak bersifat baca-saja, Anda dapat menentukan bahwa set rekaman Anda dapat diperbarui, dapat ditambahkan, atau baca-saja. Jika recordset dapat diperbarui, Anda dapat memilih metode penguncian pesimis atau optimis, asalkan driver menyediakan dukungan penguncian yang sesuai. Jika sumber data bersifat baca-saja, kumpulan rekaman akan bersifat baca-saja.

  • Anda dapat memanggil fungsi anggota untuk menggulir rekaman yang dipilih.

  • Anda bisa memfilter rekaman untuk membatasi rekaman mana yang dipilih dari rekaman yang tersedia.

  • Anda bisa mengurutkan rekaman dalam urutan naik atau turun, berdasarkan satu atau beberapa kolom.

  • Anda dapat membuat parameter kumpulan rekaman untuk memenuhi syarat pilihan kumpulan rekaman pada waktu proses.

Rekam jepret dan Dynaset

Ada dua jenis kumpulan rekaman utama: rekam jepret dan dinaset. Keduanya didukung oleh kelas CRecordset. Masing-masing berbagi karakteristik umum dari semua kumpulan rekaman, tetapi masing-masing juga memperluas fungsionalitas umum dengan cara khususnya sendiri. Rekam jepret menyediakan tampilan statis data dan berguna untuk laporan dan situasi lain di mana Anda menginginkan tampilan data seperti yang ada pada waktu tertentu. Dynasets berguna saat Anda ingin pembaruan yang dibuat oleh pengguna lain terlihat di kumpulan rekaman tanpa harus mengkueri ulang atau merefresh kumpulan rekaman. Rekam jepret dan dinaset dapat diperbarui atau baca-saja. Untuk mencerminkan rekaman yang ditambahkan atau dihapus oleh pengguna lain, panggil CRecordset::Requery.

CRecordset juga memungkinkan dua jenis recordset lainnya: recordset dinamis dan recordset forward-only. Kumpulan rekaman dinamis mirip dengan dinaset; namun, kumpulan rekaman dinamis mencerminkan rekaman apa pun yang ditambahkan atau dihapus tanpa memanggil CRecordset::Requery. Untuk alasan ini, recordset dinamis umumnya mahal sehubungan dengan waktu pemrosesan pada DBMS, dan banyak driver ODBC tidak mendukungnya. Sebaliknya, himpunan rekaman khusus maju menyediakan metode akses data yang paling efisien untuk kumpulan rekaman yang tidak memerlukan pembaruan atau pengguliran mundur. Misalnya, Anda mungkin menggunakan himpunan rekaman hanya-terusan untuk memigrasikan data dari satu sumber data ke sumber data lainnya, di mana Anda hanya perlu menelusuri data ke arah depan. Untuk menggunakan kumpulan rekaman hanya-terusan, Anda harus melakukan kedua hal berikut:

  • Teruskan opsi CRecordset::forwardOnly sebagai parameter nOpenType dari fungsi Anggota terbuka .

  • Tentukan CRecordset::readOnly dalam parameter dwOptions dari Open.

    Catatan

    Untuk informasi tentang persyaratan driver ODBC untuk dukungan dynaset, lihat ODBC. Untuk daftar driver ODBC yang disertakan dalam versi Visual C++ ini dan untuk informasi tentang mendapatkan driver tambahan, lihat Daftar Driver ODBC.

Recordset Anda

Untuk setiap tabel, tampilan, atau prosedur tersimpan yang berbeda yang ingin Anda akses, Anda biasanya menentukan kelas yang berasal dari CRecordset. (Pengecualian adalah gabungan database, di mana satu kumpulan catatan mewakili kolom dari dua tabel atau lebih.) Saat Anda memperoleh kelas recordset, Anda mengaktifkan mekanisme pertukaran bidang rekaman (RFX) atau mekanisme pertukaran bidang rekaman massal (RFX Massal), yang mirip dengan mekanisme pertukaran data dialog (DDX). RFX dan Bulk RFX menyederhanakan transfer data dari sumber data ke dalam recordset Anda; RFX juga mentransfer data dari kumpulan rekaman Anda ke sumber data. Untuk informasi selengkapnya, lihat Record Field Exchange (RFX) dan Recordset: Mengambil Rekaman secara Massal (ODBC).

Objek recordset memberi Anda akses ke semua rekaman yang dipilih. Anda menggulir beberapa rekaman yang dipilih menggunakan CRecordset fungsi anggota, seperti MoveNext dan MovePrev. Pada saat yang sama, objek kumpulan rekaman hanya mewakili salah satu rekaman yang dipilih, rekaman saat ini. Anda bisa memeriksa bidang rekaman saat ini dengan mendeklarasikan variabel anggota kelas recordset yang sesuai dengan kolom tabel atau rekaman yang dihasilkan dari kueri database. Untuk informasi tentang anggota data recordset, lihat Recordset: Architecture (ODBC).

Topik berikut menjelaskan detail penggunaan objek recordset. Topik tercantum dalam kategori fungsi dan urutan penelusuran alami untuk mengizinkan pembacaan berurutan.

Topik tentang mekanisme pembukaan, pembacaan, dan penutupan recordset

Topik tentang mekanisme memodifikasi kumpulan rekaman

Topik tentang teknik yang agak lebih canggih

Topik tentang cara kerja kumpulan rekaman

Baca juga

Open Database Koneksi ivity (ODBC)
Pemakaian ODBC MFC
Transaksi (ODBC)