Recordset: Arsitektur (ODBC)
Topik ini berlaku untuk kelas MFC ODBC.
Topik ini menjelaskan anggota data yang terdiri dari arsitektur objek recordset:
Catatan
Topik ini berlaku untuk objek yang berasal dari CRecordset
tempat pengambilan baris massal belum diimplementasikan. Jika pengambilan baris massal diimplementasikan, arsitekturnya serupa. Untuk memahami perbedaannya, lihat Recordset: Mengambil Rekaman secara Massal (ODBC).
Kelas Sampel
Catatan
Wizard MFC ODBC Consumer tidak tersedia di Visual Studio 2019 dan yang lebih baru. Anda masih dapat membuat konsumen secara manual.
Saat Anda menggunakan Wizard Konsumen MFC ODBC dari wizard Tambahkan Kelas untuk mendeklarasikan kelas recordset yang berasal dari CRecordset
, kelas yang dihasilkan memiliki struktur umum yang ditunjukkan di kelas sederhana berikut:
class CCourse : public CRecordset
{
public:
CCourse(CDatabase* pDatabase = NULL);
...
CString m_strCourseID;
CString m_strCourseTitle;
CString m_strIDParam;
};
Di awal kelas, wizard menulis sekumpulan anggota data bidang. Saat membuat kelas, Anda harus menentukan satu atau beberapa anggota data bidang. Jika kelas diparameterkan, karena kelas sampel adalah (dengan anggota m_strIDParam
data ), Anda harus menambahkan anggota data parameter secara manual. Wizard tidak mendukung penambahan parameter ke kelas.
Anggota Data Bidang
Anggota terpenting dari kelas recordset Anda adalah anggota data bidang. Untuk setiap kolom yang Anda pilih dari sumber data, kelas berisi anggota data dari jenis data yang sesuai untuk kolom tersebut. Misalnya, kelas sampel yang ditunjukkan di awal topik ini memiliki dua anggota data bidang, kedua jenis CString
, dipanggil m_strCourseID
dan m_strCourseTitle
.
Saat kumpulan rekaman memilih sekumpulan rekaman, kerangka kerja secara otomatis mengikat kolom rekaman saat ini (setelah Open
panggilan, rekaman pertama adalah saat ini) ke anggota data bidang objek. Artinya, kerangka kerja menggunakan anggota data bidang yang sesuai sebagai buffer untuk menyimpan konten kolom rekaman.
Saat pengguna menggulir ke rekaman baru, kerangka kerja menggunakan anggota data bidang untuk mewakili rekaman saat ini. Kerangka kerja me-refresh anggota data bidang, menggantikan nilai rekaman sebelumnya. Anggota data bidang juga digunakan untuk memperbarui rekaman saat ini dan untuk menambahkan rekaman baru. Sebagai bagian dari proses memperbarui rekaman, Anda menentukan nilai pembaruan dengan menetapkan nilai langsung ke anggota atau anggota data bidang yang sesuai.
Anggota Data Parameter
Jika kelas diparameterkan, kelas memiliki satu atau beberapa anggota data parameter. Kelas berparameter memungkinkan Anda mendasarkan kueri kumpulan rekaman pada informasi yang diperoleh atau dihitung pada waktu proses.
Biasanya, parameter membantu mempersempit pilihan, seperti dalam contoh berikut. Berdasarkan kelas sampel di awal topik ini, objek recordset mungkin menjalankan pernyataan SQL berikut:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?
"?" adalah tempat penampung untuk nilai parameter yang Anda berikan pada waktu proses. Saat Anda membuat kumpulan rekaman dan mengatur anggota datanya m_strIDParam
ke MATH101, pernyataan SQL yang efektif untuk kumpulan catatan menjadi:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101
Dengan menentukan anggota data parameter, Anda memberi tahu kerangka kerja tentang parameter dalam string SQL. Kerangka kerja mengikat parameter, yang memungkinkan ODBC tahu di mana mendapatkan nilai untuk mengganti tempat penampung. Dalam contoh, kumpulan rekaman yang dihasilkan hanya berisi rekaman dari tabel Kursus dengan kolom CourseID yang nilainya MATH101. Semua kolom yang ditentukan dari rekaman ini dipilih. Anda dapat menentukan parameter (dan tempat penampung) sebanyak yang Anda butuhkan.
Catatan
MFC tidak melakukan apa pun dengan parameter — khususnya, MFC tidak melakukan penggantian teks. Sebaliknya, MFC memberi tahu ODBC di mana mendapatkan parameter; ODBC mengambil data dan melakukan parameterisasi yang diperlukan.
Catatan
Urutan parameter penting. Untuk informasi tentang ini dan informasi selengkapnya tentang parameter, lihat Recordset: Parameterizing a Recordset (ODBC).
Menggunakan m_nFields dan m_nParams
Saat wizard menulis konstruktor untuk kelas Anda, wizard juga menginisialisasi anggota data m_nFields , yang menentukan jumlah anggota data bidang di kelas . Jika Anda menambahkan parameter apa pun ke kelas, Anda juga harus menambahkan inisialisasi untuk anggota data m_nParams , yang menentukan jumlah anggota data parameter. Kerangka kerja menggunakan nilai-nilai ini untuk bekerja dengan anggota data.
Untuk informasi dan contoh selengkapnya, lihat Pertukaran Bidang Rekaman: Menggunakan RFX.
Baca juga
Recordset (ODBC)
Recordset: Mendeklarasikan Kelas untuk Tabel (ODBC)
Pertukaran Bidang Rekaman (RFX)
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