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.