Bagikan melalui


Kelas CDaoFieldExchange

Mendukung rutinitas pertukaran bidang rekaman DAO (DFX) yang digunakan oleh kelas database DAO.

Catatan

DAO didukung melalui Office 2013. DAO 3.6 adalah versi akhir, dan dianggap usang.

Sintaks

class CDaoFieldExchange

Anggota

Metode Publik

Nama Deskripsi
CDaoFieldExchange::IsValidOperation Mengembalikan nonzero jika operasi saat ini sesuai untuk jenis bidang yang sedang diperbarui.
CDaoFieldExchange::SetFieldType Menentukan jenis anggota data recordset — kolom atau parameter — yang diwakili oleh semua panggilan berikutnya ke fungsi DFX hingga panggilan berikutnya ke SetFieldType.

Anggota Data Publik

Nama Deskripsi
CDaoFieldExchange::m_nOperation Operasi DFX sedang dilakukan oleh panggilan saat ini ke fungsi anggota recordset DoFieldExchange .
CDaoFieldExchange::m_prs Penunjuk ke kumpulan rekaman tempat operasi DFX sedang dilakukan.

Keterangan

CDaoFieldExchange tidak memiliki kelas dasar.

Gunakan kelas ini jika Anda menulis rutinitas pertukaran data untuk jenis data kustom; jika tidak, Anda tidak akan langsung menggunakan kelas ini. DFX bertukar data antara anggota data bidang objek CDaoRecordset Anda dan bidang terkait dari rekaman saat ini pada sumber data. DFX mengelola pertukaran di kedua arah, dari sumber data dan ke sumber data. Lihat Catatan Teknis 53 untuk informasi tentang menulis rutinitas DFX kustom.

Catatan

Kelas database DAO berbeda dari kelas database MFC berdasarkan Open Database Connectivity (ODBC). Semua nama kelas database DAO memiliki awalan "CDao". Anda masih dapat mengakses sumber data ODBC dengan kelas DAO. Secara umum, kelas MFC berdasarkan DAO lebih mampu daripada kelas MFC berdasarkan ODBC. Kelas berbasis DAO dapat mengakses data, termasuk melalui driver ODBC, melalui mesin database mereka sendiri. Mereka juga mendukung operasi Data Definition Language (DDL), seperti menambahkan tabel melalui kelas alih-alih harus memanggil DAO sendiri.

Catatan

Pertukaran bidang rekaman DAO (DFX) sangat mirip dengan pertukaran bidang rekaman (RFX) di kelas database MFC berbasis ODBC ( CDatabase, CRecordset). Jika Anda memahami RFX, Anda akan merasa mudah menggunakan DFX.

Objek CDaoFieldExchange menyediakan informasi konteks yang diperlukan agar pertukaran bidang rekaman DAO berlangsung. CDaoFieldExchange objek mendukung sejumlah operasi, termasuk parameter pengikatan dan anggota data bidang dan mengatur berbagai bendera pada bidang rekaman saat ini. Operasi DFX dilakukan pada anggota data kelas recordset dari jenis yang ditentukan oleh enum FieldType di CDaoFieldExchange. Nilai FieldType yang mungkin adalah:

  • CDaoFieldExchange::outputColumn untuk anggota data bidang.

  • CDaoFieldExchange::param untuk anggota data parameter.

Fungsi anggota IsValidOperation disediakan untuk menulis rutinitas DFX kustom Anda sendiri. Anda akan sering menggunakan SetFieldType dalam fungsi CDaoRecordset::D oFieldExchange Anda. Untuk detail tentang fungsi global DFX, lihat Fungsi Pertukaran Bidang Rekaman. Untuk informasi tentang menulis rutinitas DFX kustom untuk jenis data Anda sendiri, lihat Catatan Teknis 53.

Hierarki Warisan

CDaoFieldExchange

Persyaratan

Header: afxdao.h

CDaoFieldExchange::IsValidOperation

Jika Anda menulis fungsi DFX Anda sendiri, panggil IsValidOperation di awal fungsi Anda untuk menentukan apakah operasi saat ini dapat dilakukan pada jenis anggota data bidang tertentu (atau CDaoFieldExchange::outputColumn CDaoFieldExchange::param).

BOOL IsValidOperation();

Tampilkan Nilai

Bukan nol jika operasi saat ini sesuai untuk jenis bidang yang sedang diperbarui.

Keterangan

Beberapa operasi yang dilakukan oleh mekanisme DFX hanya berlaku untuk salah satu jenis bidang yang mungkin. Ikuti model fungsi DFX yang ada.

Untuk informasi tambahan tentang menulis rutinitas DFX kustom, lihat Catatan Teknis 53.

CDaoFieldExchange::m_nOperation

Mengidentifikasi operasi yang akan dilakukan pada objek CDaoRecordset yang terkait dengan objek pertukaran bidang.

Keterangan

Objek CDaoFieldExchange menyediakan konteks untuk sejumlah operasi DFX yang berbeda pada kumpulan rekaman.

Catatan

Nilai PSEUDONULL yang MarkForAddNew dijelaskan di bawah operasi dan SetFieldNull di bawah ini adalah nilai yang digunakan untuk menandai bidang Null. Mekanisme pertukaran bidang rekaman DAO (DFX) menggunakan nilai ini untuk menentukan bidang mana yang telah ditandai secara eksplisit Null. PSEUDONULL tidak diperlukan untuk COleDateTime bidang dan COleCurrency .

m_nOperation Nilai yang mungkin adalah:

Operasi Deskripsi
AddToParameterList Membangun klausul PARAMETER dari pernyataan SQL.
AddToSelectList Membangun klausa SELECT dari pernyataan SQL.
BindField Mengikat bidang dalam database ke lokasi memori di aplikasi Anda.
BindParam Mengatur nilai parameter untuk kueri kumpulan rekaman.
Fixup Mengatur status Null untuk bidang.
AllocCache Mengalokasikan cache yang digunakan untuk memeriksa bidang "kotor" dalam kumpulan rekaman.
StoreField Menyimpan rekaman saat ini ke cache.
LoadField Memulihkan variabel anggota data yang di-cache dalam kumpulan rekaman.
FreeCache Membebaskan cache yang digunakan untuk memeriksa bidang "kotor" di kumpulan rekaman.
SetFieldNull Mengatur status bidang ke Null dan nilai ke PSEUDONULL.
MarkForAddNew Menandai bidang "kotor" jika bukan PSEUDONULL.
MarkForEdit Menandai bidang "kotor" jika tidak cocok dengan cache.
SetDirtyField Mengatur nilai bidang yang ditandai sebagai "kotor."
DumpField Mencadangkan konten bidang (hanya debug).
MaxDFXOperation Digunakan untuk pemeriksaan input.

CDaoFieldExchange::m_prs

Berisi penunjuk ke objek CDaoRecordset yang terkait dengan CDaoFieldExchange objek.

Keterangan

CDaoFieldExchange::SetFieldType

Hubungi SetFieldType timpa kelas DoFieldExchange AndaCDaoRecordset.

void SetFieldType(UINT nFieldType);

Parameter

nFieldType
Nilai enum FieldType, dinyatakan dalam CDaoFieldExchange, yang dapat berupa salah satu dari berikut ini:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Keterangan

Biasanya, ClassWizard menulis panggilan ini untuk Anda. Jika Anda menulis fungsi Anda sendiri dan menggunakan wizard untuk menulis fungsi Anda DoFieldExchange , tambahkan panggilan ke fungsi Anda sendiri di luar peta bidang. Jika Anda tidak menggunakan wizard, maka tidak akan ada peta bidang. Panggilan mendahului panggilan ke fungsi DFX, satu untuk setiap anggota data bidang kelas Anda, dan mengidentifikasi jenis bidang sebagai CDaoFieldExchange::outputColumn.

Jika Anda membuat parameter kelas recordset, Anda harus menambahkan panggilan DFX untuk semua anggota data parameter (di luar peta bidang) dan mendahului panggilan ini dengan panggilan ke SetFieldType. Berikan nilai CDaoFieldExchange::param. (Sebagai gantinya, Anda dapat menggunakan CDaoQueryDef dan atur nilai parameternya.)

Secara umum, setiap grup panggilan fungsi DFX yang terkait dengan anggota data bidang atau anggota data parameter harus didahului oleh panggilan ke SetFieldType. Parameter nFieldType dari setiap SetFieldType panggilan mengidentifikasi jenis anggota data yang diwakili oleh panggilan fungsi DFX yang mengikuti SetFieldType panggilan.

Lihat juga

Bagan Hierarki
Kelas CDaoRecordset