Bagikan melalui


Kelas CFieldExchange

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 Koneksi ivity (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 enumFieldType di CFieldExchange. Nilai FieldType yang mungkin adalah:

  • CFieldExchange::outputColumn untuk anggota data bidang.

  • CFieldExchange::inputParam atau CFieldExchange::param untuk anggota data parameter input.

  • CFieldExchange::outputParam untuk anggota data parameter output.

  • CFieldExchange::inoutParam untuk 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::outputColumn

  • CFieldExchange::inputParam

  • CFieldExchange::param

  • CFieldExchange::outputParam

  • CFieldExchange::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);
}

Baca juga

Bagan Hierarki
Kelas CRecordset