Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mendukung rutinitas pertukaran bidang rekaman (RFX) dan pertukaran bidang rekaman massal (RFX Massal) yang digunakan oleh kelas database.
Sintaks
class CFieldExchange
Anggota
Metode Publik
| Nama | Deskripsi |
|---|---|
| CFieldExchange::IsFieldType | Mengembalikan nonzero jika operasi saat ini sesuai untuk jenis bidang yang sedang diperbarui. |
| CFieldExchange::SetFieldType | Menentukan jenis anggota data recordset — kolom atau parameter — yang diwakili oleh semua panggilan berikut ke fungsi RFX hingga panggilan berikutnya ke SetFieldType. |
Keterangan
CFieldExchange tidak memiliki kelas dasar.
Gunakan kelas ini jika Anda menulis rutinitas pertukaran data untuk jenis data kustom atau saat Anda menerapkan pengambilan baris massal; jika tidak, Anda tidak akan langsung menggunakan kelas ini. RFX dan RFX Massal bertukar data antara anggota data bidang objek himpunan rekaman Anda dan bidang terkait dari rekaman saat ini pada sumber data.
Catatan
Jika Anda bekerja dengan kelas Objek Akses Data (DAO) daripada kelas Open Database Connectivity (ODBC), gunakan kelas CDaoFieldExchange sebagai gantinya. Untuk informasi selengkapnya, lihat artikel Gambaran Umum:Pemrograman Database.
Objek CFieldExchange menyediakan informasi konteks yang diperlukan untuk pertukaran bidang rekaman atau pertukaran bidang rekaman massal untuk terjadi. CFieldExchange objek mendukung sejumlah operasi, termasuk parameter pengikatan dan anggota data bidang dan mengatur berbagai bendera pada bidang rekaman saat ini. Operasi RFX dan RFX Massal dilakukan pada anggota data kelas recordset dari jenis yang ditentukan oleh enum FieldType di CFieldExchange. Nilai FieldType yang mungkin adalah:
CFieldExchange::outputColumnuntuk anggota data bidang.CFieldExchange::inputParamatauCFieldExchange::paramuntuk anggota data parameter input.CFieldExchange::outputParamuntuk anggota data parameter output.CFieldExchange::inoutParamuntuk anggota data parameter input/output.
Sebagian besar fungsi anggota kelas dan anggota data disediakan untuk menulis rutinitas RFX kustom Anda sendiri. Anda akan sering menggunakan SetFieldType . Untuk informasi selengkapnya, lihat artikel Record Field Exchange (RFX) dan Recordset (ODBC). Untuk informasi tentang pengambilan baris massal, lihat artikel Kumpulan Catatan: Mengambil Rekaman secara Massal (ODBC). Untuk detail tentang fungsi global RFX dan RFX Massal, lihat Fungsi Pertukaran Bidang Rekaman di bagian Makro MFC dan Global dari referensi ini.
Hierarki Warisan
CFieldExchange
Persyaratan
Header: afxdb.h
CFieldExchange::IsFieldType
Jika Anda menulis fungsi RFX Anda sendiri, panggil IsFieldType di awal fungsi Anda untuk menentukan apakah operasi saat ini dapat dilakukan pada jenis anggota data bidang atau parameter tertentu (CFieldExchange::outputColumn, , CFieldExchange::inputParamCFieldExchange::param, CFieldExchange::outputParam, atau CFieldExchange::inoutParam).
BOOL IsFieldType(UINT* pnField);
Parameter
pnField
Jumlah berurutan dari anggota data bidang atau parameter dikembalikan dalam parameter ini. Nomor ini sesuai dengan urutan anggota data dalam fungsi CRecordset::D oFieldExchange atau CRecordset::D oBulkFieldExchange .
Tampilkan Nilai
Bukan nol jika operasi saat ini dapat dilakukan pada bidang atau jenis parameter saat ini.
Keterangan
Ikuti model fungsi RFX yang ada.
CFieldExchange::SetFieldType
Anda memerlukan panggilan ke SetFieldType di kelas recordset Anda DoFieldExchange atau DoBulkFieldExchange mengambil alih.
void SetFieldType(UINT nFieldType);
Parameter
nFieldType
Nilai enum FieldType, dideklarasikan dalam CFieldExchange, yang bisa menjadi salah satu dari berikut ini:
CFieldExchange::outputColumnCFieldExchange::inputParamCFieldExchange::paramCFieldExchange::outputParamCFieldExchange::inoutParam
Keterangan
Untuk anggota data bidang, Anda harus memanggil SetFieldType dengan parameter CFieldExchange::outputColumn, diikuti dengan panggilan ke fungsi RFX atau RFX Massal. Jika Anda belum menerapkan pengambilan baris massal, maka ClassWizard menempatkan panggilan ini SetFieldType untuk Anda di bagian peta bidang dari DoFieldExchange.
Jika Anda membuat parameter kelas recordset, Anda harus memanggil SetFieldType lagi, di luar bagian peta bidang apa pun, diikuti oleh panggilan RFX untuk semua anggota data parameter. Setiap jenis anggota data parameter harus memiliki panggilannya sendiri SetFieldType . Tabel berikut membedakan nilai berbeda yang dapat Anda teruskan SetFieldType untuk mewakili anggota data parameter kelas Anda:
| Nilai parameter SetFieldType | Jenis anggota data parameter |
|---|---|
CFieldExchange::inputParam |
Parameter input. Nilai yang diteruskan ke kueri kumpulan rekaman atau prosedur tersimpan. |
CFieldExchange::param |
sama seperti CFieldExchange::inputParam. |
CFieldExchange::outputParam |
Parameter output. Nilai yang dikembalikan dari prosedur tersimpan himpunan catatan. |
CFieldExchange::inoutParam |
Parameter input/output. Nilai yang diteruskan ke dan dikembalikan dari prosedur tersimpan himpunan catatan. |
Secara umum, setiap grup panggilan fungsi RFX 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 RFX yang mengikuti SetFieldType panggilan.
Untuk informasi selengkapnya tentang menangani parameter output dan input/output, lihat CRecordset fungsi anggota FlushResultSet. Untuk informasi selengkapnya tentang fungsi RFX dan RFX Massal, lihat topik Fungsi Pertukaran Bidang Rekaman. Untuk informasi terkait tentang pengambilan baris massal, lihat artikel Kumpulan Rekaman: Mengambil Rekaman secara Massal (ODBC).
Contoh
Contoh ini menunjukkan beberapa panggilan ke fungsi RFX dengan panggilan yang menyertainya ke SetFieldType. Perhatikan bahwa SetFieldType dipanggil melalui pFX penunjuk ke CFieldExchange objek.
void CSections::DoFieldExchange(CFieldExchange *pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("[CourseID]"), m_CourseID);
RFX_Text(pFX, _T("[InstructorID]"), m_InstructorID);
RFX_Text(pFX, _T("[RoomNo]"), m_RoomNo);
RFX_Text(pFX, _T("[Schedule]"), m_Schedule);
// output parameter
pFX->SetFieldType(CFieldExchange::outputParam);
RFX_Long(pFX, _T("Instructor_Count"), m_nCountParam);
// input parameter
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, _T("Department_Name"), m_strNameParam);
}