Recordset: Cara Recordset Memilih Rekaman (ODBC)
Catatan
Wizard MFC ODBC Consumer tidak tersedia di Visual Studio 2019 dan yang lebih baru. Anda masih dapat membuat konsumen secara manual.
Topik ini berlaku untuk kelas MFC ODBC.
Topik ini menjelaskan:
Kumpulan rekaman memilih rekaman dari sumber data melalui driver ODBC dengan mengirim pernyataan SQL ke driver. SQL yang dikirim tergantung pada cara Anda merancang dan membuka kelas recordset Anda.
Opsi Anda dalam Memilih Rekaman
Tabel berikut ini memperlihatkan opsi Anda dalam memilih rekaman.
Bagaimana dan Kapan Anda Dapat Memengaruhi Kumpulan Rekaman
Ketika Anda | Anda dapat |
---|---|
Mendeklarasikan kelas recordset Anda dengan wizard Tambahkan Kelas | Tentukan tabel mana yang akan dipilih. Tentukan kolom mana yang akan disertakan. Lihat Menambahkan Konsumen MFC ODBC. |
Menyelesaikan implementasi kelas recordset Anda | Ambil alih fungsi anggota seperti OnSetOptions (tingkat lanjut) untuk mengatur opsi khusus aplikasi atau mengubah default. Tentukan anggota data parameter jika Anda menginginkan kumpulan rekaman berparameter. |
Membuat objek recordset (sebelum Anda memanggil Open ) |
Tentukan kondisi pencarian (mungkin majemuk) untuk digunakan dalam klausa WHERE yang memfilter rekaman. Lihat Recordset: Memfilter Rekaman (ODBC). Tentukan urutan pengurutan untuk digunakan dalam klausa ORDER BY yang mengurutkan rekaman. Lihat Recordset: Mengurutkan Rekaman (ODBC). Tentukan nilai parameter untuk parameter apa pun yang Anda tambahkan ke kelas . Lihat Recordset: Membuat parameter Recordset (ODBC). |
|Jalankan kueri kumpulan rekaman dengan memanggil Open
|Tentukan string SQL kustom untuk mengganti string SQL default yang disiapkan oleh wizard. Lihat CRecordset::Buka di Referensi Pustaka Kelas dan SQL: Menyesuaikan Pernyataan SQL Recordset Anda (ODBC).|
|Panggilan Requery
untuk mengkueri ulang kumpulan rekaman dengan nilai terbaru pada sumber data|Tentukan parameter, filter, atau pengurutan baru. Lihat Recordset: Mengkueri ulang Recordset (ODBC).|
Bagaimana Recordset Membuat Pernyataan SQL-nya
Saat Anda memanggil fungsi Anggota terbuka objek recordset, Open
buat pernyataan SQL menggunakan beberapa atau semua bahan berikut:
Parameter lpszSQL diteruskan ke
Open
. Jika bukan NULL, parameter ini menentukan string SQL kustom atau bagian dari satu. Kerangka kerja mengurai string. Jika string adalah pernyataan SQL SELECT atau pernyataan ODBC CALL , kerangka kerja menggunakan string sebagai pernyataan SQL recordset. Jika string tidak dimulai dengan "SELECT" atau "{CALL", kerangka kerja menggunakan apa yang disediakan untuk membuat klausa SQL FROM .String yang dikembalikan oleh GetDefaultSQL. Secara default, ini adalah nama tabel yang Anda tentukan untuk kumpulan rekaman dalam wizard, tetapi Anda bisa mengubah apa yang dikembalikan fungsi. Kerangka kerja memanggil — jika string tidak dimulai dengan "SELECT" atau "{CALL", itu diasumsikan
GetDefaultSQL
sebagai nama tabel, yang digunakan untuk membuat string SQL.Anggota data bidang dari himpunan rekaman, yang akan terikat ke kolom tabel tertentu. Kerangka kerja mengikat kolom rekaman ke alamat anggota ini, menggunakannya sebagai buffer. Kerangka kerja menentukan korelasi anggota data bidang ke kolom tabel dari fungsi RFX atau RFX Massal dalam fungsi anggota DoFieldExchange atau DoBulkFieldExchange kumpulan rekaman.
Filter untuk kumpulan rekaman, jika ada, yang terkandung dalam anggota data m_strFilter. Kerangka kerja menggunakan string ini untuk membuat klausa SQL WHERE .
Urutan pengurutan untuk kumpulan rekaman, jika ada, terkandung dalam anggota data m_strSort . Kerangka kerja menggunakan string ini untuk membuat klausa SQL ORDER BY .
Tip
Untuk menggunakan klausa SQL GROUP BY (dan mungkin klausul HAVING ), tambahkan klausa ke akhir string filter Anda.
Nilai anggota data parameter apa pun yang Anda tentukan untuk kelas tersebut. Anda mengatur nilai parameter tepat sebelum memanggil
Open
atauRequery
. Kerangka kerja mengikat nilai parameter ke tempat penampung "?" dalam string SQL. Pada waktu kompilasi, Anda menentukan string dengan tempat penampung. Pada waktu proses, kerangka kerja mengisi detail berdasarkan nilai parameter yang Anda lewati.
Open
membuat pernyataan SQL SELECT dari bahan-bahan ini. Lihat Menyesuaikan Pilihan untuk detail tentang cara kerangka kerja menggunakan bahan.
Setelah membuat pernyataan, Open
mengirim SQL ke Manajer Driver ODBC (dan Pustaka Kursor ODBC jika dalam memori), yang mengirimkannya ke driver ODBC untuk DBMS tertentu. Driver berkomunikasi dengan DBMS untuk melakukan pemilihan pada sumber data dan mengambil rekaman pertama. Kerangka kerja memuat rekaman ke dalam anggota data bidang dari kumpulan rekaman.
Anda dapat menggunakan kombinasi teknik ini untuk membuka tabel dan membuat kueri berdasarkan gabungan beberapa tabel. Dengan kustomisasi tambahan, Anda dapat memanggil kueri yang telah ditentukan sebelumnya (prosedur tersimpan), memilih kolom tabel yang tidak diketahui pada waktu desain dan mengikatnya ke bidang kumpulan rekaman atau Anda dapat melakukan sebagian besar tugas akses data lainnya. Tugas yang tidak dapat Anda selesaikan dengan menyesuaikan kumpulan rekaman masih dapat dicapai dengan memanggil fungsi ODBC API atau langsung menjalankan pernyataan SQL dengan CDatabase::ExecuteSQL.
Menyesuaikan Pilihan
Selain menyediakan filter, urutan pengurutan, atau parameter, Anda dapat mengambil tindakan berikut untuk menyesuaikan pilihan kumpulan rekaman Anda:
Berikan string SQL kustom di lpszSQL saat Anda memanggil Buka untuk recordset. Apa pun yang Anda berikan di lpsqSQL lebih diutamakan daripada apa yang dikembalikan oleh fungsi anggota GetDefaultSQL .
Untuk informasi selengkapnya, lihat SQL: Menyesuaikan Pernyataan SQL Recordset Anda (ODBC), yang menjelaskan jenis pernyataan SQL (atau pernyataan parsial) yang dapat Anda teruskan
Open
dan apa yang dilakukan kerangka kerja dengan mereka.Catatan
Jika string kustom yang Anda lewati tidak dimulai dengan "SELECT" atau "{CALL", MFC mengasumsikan string tersebut berisi nama tabel. Ini juga berlaku untuk item berpoin berikutnya.
Ubah string yang ditulis wizard di fungsi anggota kumpulan rekaman
GetDefaultSQL
Anda. Edit kode fungsi untuk mengubah apa yang dikembalikannya. Secara default, wizard menulisGetDefaultSQL
fungsi yang mengembalikan satu nama tabel.Anda dapat mengembalikan
GetDefaultSQL
salah satu item yang dapat Anda teruskan dalam parameter lpszSQL keOpen
. Jika Anda tidak meneruskan string SQL kustom di lpszSQL, kerangka kerja menggunakan string yangGetDefaultSQL
mengembalikan. Minimal,GetDefaultSQL
harus mengembalikan satu nama tabel. Tetapi Anda dapat memintanya mengembalikan beberapa nama tabel, pernyataan SELECT lengkap, pernyataan ODBC CALL, dan sebagainya. Untuk daftar apa yang dapat Anda berikan ke lpszSQL — atau telahGetDefaultSQL
kembali — lihat SQL: Menyesuaikan Pernyataan SQL Recordset Anda (ODBC).Jika Anda melakukan gabungan dua tabel atau lebih, tulis
GetDefaultSQL
ulang untuk mengkustomisasi daftar tabel yang digunakan dalam klausa SQL FROM . Untuk informasi selengkapnya, lihat Recordset: Melakukan Gabungan (ODBC).Mengikat anggota data bidang tambahan secara manual, mungkin berdasarkan informasi yang Anda peroleh tentang skema sumber data Anda pada waktu proses. Anda menambahkan anggota data bidang ke kelas recordset, panggilan fungsi RFX atau RFX Massal untuk mereka ke fungsi anggota DoFieldExchange atau DoBulkFieldExchange , dan inisialisasi anggota data di konstruktor kelas. Untuk informasi selengkapnya, lihat Recordset: Dynamically Binding Data Columns (ODBC).
Ambil alih fungsi anggota kumpulan rekaman, seperti
OnSetOptions
, untuk mengatur opsi khusus aplikasi atau untuk mengambil alih default.
Jika Anda ingin mendasarkan kumpulan rekaman pada pernyataan SQL yang kompleks, Anda perlu menggunakan beberapa kombinasi teknik penyesuaian ini. Misalnya, mungkin Anda ingin menggunakan klausa dan kata kunci SQL yang tidak didukung langsung oleh kumpulan rekaman atau mungkin Anda bergabung dengan beberapa tabel.
Baca juga
Recordset (ODBC)
Recordset: Cara Rekaman Memperbarui Rekaman (ODBC)
Dasar-Dasar ODBC
SQL
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