Bagikan melalui


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_strIDParamdata ), 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)