Bagikan melalui


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

  1. Buat objek recordset baru (atau bersiaplah untuk memanggil Requery objek yang sudah ada).

  2. 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.

  3. 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).

  4. Panggil Open objek baru (atau Requery 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)