Recordset: Pemfilteran Rekaman (ODBC)
Topik ini berlaku untuk kelas MFC ODBC.
Topik ini menjelaskan cara memfilter kumpulan rekaman sehingga hanya memilih subset tertentu dari rekaman yang tersedia. Misalnya, Anda mungkin hanya ingin memilih bagian kelas untuk kursus tertentu, seperti MATH101. Filter adalah kondisi pencarian yang ditentukan oleh konten klausa SQL WHERE . Saat kerangka kerja menambahkannya ke pernyataan SQL kumpulan rekaman, klausa WHERE membatasi pilihan.
Anda harus membuat filter objek recordset setelah membuat objek tetapi sebelum Anda memanggil fungsi anggotanya Open
(atau sebelum Anda memanggil Requery
fungsi anggota untuk objek kumpulan rekaman yang sudah ada yang fungsi anggotanya Open
telah dipanggil sebelumnya).
Untuk menentukan filter untuk objek kumpulan rekaman
Buat objek recordset baru (atau bersiaplah untuk memanggil
Requery
objek yang sudah ada).Atur nilai anggota data m_strFilter objek.
Filter adalah string null-terminated yang berisi konten klausa SQL WHERE tetapi bukan kata kunci WHERE. Misalnya, gunakan:
m_pSet->m_strFilter = "CourseID = 'MATH101'";
not
m_pSet->m_strFilter = "WHERE CourseID = 'MATH101'";
Catatan
String harfiah "MATH101" ditampilkan dengan tanda kutip tunggal di atas. Dalam spesifikasi ODBC SQL, tanda kutip tunggal digunakan untuk menunjukkan string karakter harfiah. Periksa dokumentasi driver ODBC Anda untuk persyaratan kutipan DBMS Anda dalam situasi ini. Sintaks ini juga dibahas lebih lanjut di dekat akhir topik ini.
Atur opsi lain yang Anda butuhkan, seperti urutan pengurutan, mode penguncian, atau parameter. Menentukan parameter sangat berguna. Untuk informasi tentang parameterisasi filter Anda, lihat Recordset: Parameterizing a Recordset (ODBC).
Panggil
Open
objek baru (atauRequery
untuk objek yang dibuka sebelumnya).
Tip
Menggunakan parameter di filter Anda berpotensi menjadi metode yang paling efisien untuk mengambil rekaman.
Tip
Filter kumpulan rekaman berguna untuk menggabungkan tabel dan untuk menggunakan parameter berdasarkan informasi yang diperoleh atau dihitung pada waktu proses.
Kumpulan rekaman hanya memilih rekaman yang memenuhi kondisi pencarian yang Anda tentukan. Misalnya, untuk menentukan filter kursus yang dijelaskan di atas (dengan asumsi variabel strCourseID
yang saat ini diatur, misalnya, ke "MATH101"), lakukan hal berikut:
// Using the recordset pointed to by m_pSet
// Set the filter
m_pSet->m_strFilter = "CourseID = " + strCourseID;
// Run the query with the filter in place
if ( m_pSet->Open( CRecordset::snapshot, NULL, CRecordset::readOnly ) )
// Use the recordset
Kumpulan rekaman berisi rekaman untuk semua bagian kelas untuk MATH101.
Perhatikan bagaimana string filter diatur dalam contoh di atas, menggunakan variabel string. Ini adalah penggunaan umum. Tetapi misalkan Anda ingin menentukan nilai harfiah 100 untuk ID kursus. Kode berikut menunjukkan cara mengatur string filter dengan benar dengan nilai harfiah:
m_strFilter = "StudentID = '100'"; // correct
Perhatikan penggunaan karakter kutipan tunggal; jika Anda mengatur string filter secara langsung, string filter tidak:
m_strFilter = "StudentID = 100"; // incorrect for some drivers
Kutipan yang ditunjukkan di atas sesuai dengan spesifikasi ODBC, tetapi beberapa DBMS mungkin memerlukan karakter kutipan lainnya. Untuk informasi selengkapnya, lihat SQL: Menyesuaikan Pernyataan SQL Recordset Anda (ODBC).
Catatan
Jika Anda memilih untuk mengambil alih string SQL default kumpulan rekaman dengan meneruskan string SQL Anda sendiri ke Open
, Anda tidak boleh mengatur filter jika string kustom Anda memiliki klausul WHERE . Untuk informasi selengkapnya tentang mengesampingkan SQL default, lihat SQL: Menyesuaikan Pernyataan SQL Recordset Anda (ODBC).
Baca juga
Recordset (ODBC)
Recordset: Mengurutkan Rekaman (ODBC)
Recordset: Cara Recordset Memilih Rekaman (ODBC)
Recordset: Cara Rekaman Memperbarui Rekaman (ODBC)
Recordset: Mengunci Rekaman (ODBC)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk