Bagikan melalui


Fungsi Pertukaran Bidang Rekaman

Topik ini mencantumkan fungsi Record Field Exchange (RFX, Bulk RFX, dan DFX) yang digunakan untuk mengotomatiskan transfer data antara objek recordset dan sumber datanya dan untuk melakukan operasi lain pada data.

Jika Anda menggunakan kelas berbasis ODBC dan telah menerapkan pengambilan baris massal, Anda harus mengambil alih DoBulkFieldExchange fungsi CRecordset anggota secara manual dengan memanggil fungsi RFX Massal untuk setiap anggota data yang sesuai dengan kolom sumber data.

Jika Anda belum menerapkan pengambilan baris massal di kelas berbasis ODBC, atau jika Anda menggunakan kelas berbasis DAO (usang), maka ClassWizard akan mengambil alih DoFieldExchange fungsi anggota dari CRecordset atau CDaoRecordset dengan memanggil fungsi RFX (untuk kelas ODBC) atau fungsi DFX (untuk kelas DAO) untuk setiap anggota data bidang dalam kumpulan catatan Anda.

Fungsi pertukaran bidang rekaman mentransfer data setiap kali kerangka kerja memanggil DoFieldExchange atau DoBulkFieldExchange. Setiap fungsi mentransfer jenis data tertentu.

Untuk informasi selengkapnya tentang cara fungsi ini digunakan, lihat artikel Record Field Exchange: Cara Kerja RFX (ODBC). Untuk informasi selengkapnya tentang pengambilan baris massal, lihat artikel Kumpulan Rekaman: Mengambil Rekaman secara Massal (ODBC).

Untuk kolom data yang Anda ikat secara dinamis, Anda juga dapat memanggil fungsi RFX atau DFX sendiri, seperti yang dijelaskan dalam artikel Recordset: Dynamically Binding Data Columns (ODBC). Selain itu, Anda dapat menulis rutinitas RFX atau DFX kustom Anda sendiri, seperti yang dijelaskan dalam Catatan Teknis 43 (untuk ODBC) dan Catatan Teknis 53 (untuk DAO).

Untuk contoh fungsi RFX dan RFX Massal saat muncul di DoFieldExchange fungsi dan DoBulkFieldExchange , lihat RFX_Text dan [RFX_Text_Bulk]#rfx_text_bulk). Fungsi DFX sangat mirip dengan fungsi RFX.

Fungsi RFX (ODBC)

Nama Deskripsi
RFX_Binary Mentransfer array byte tipe CByteArray.
RFX_Bool Mentransfer data Boolean.
RFX_Byte Mentransfer satu byte data.
RFX_Date Mentransfer data waktu dan tanggal menggunakan CTime atau TIMESTAMP_STRUCT.
RFX_Double Mentransfer data float presisi ganda.
RFX_Int Mentransfer data bilangan bulat.
RFX_Long Mentransfer data bilangan bulat panjang.
RFX_LongBinary Mentransfer data objek besar biner (BLOB) dengan objek kelas CLongBinary .
RFX_Single Mentransfer data float.
RFX_Text Mentransfer data string.

Fungsi RFX Massal (ODBC)

Nama Deskripsi
RFX_Binary_Bulk Mentransfer array data byte.
RFX_Bool_Bulk Mentransfer array data Boolean.
RFX_Byte_Bulk Mentransfer array byte tunggal.
RFX_Date_Bulk Mentransfer array data jenis TIMESTAMP_STRUCT.
RFX_Double_Bulk Mentransfer array data presisi ganda dan floating-point.
RFX_Int_Bulk Mentransfer array data bilangan bulat.
RFX_Long_Bulk Mentransfer array data bilangan bulat panjang.
RFX_Single_Bulk Mentransfer array data floating-point.
RFX_Text_Bulk Mentransfer array data jenis LPSTR.

Fungsi DFX (DAO)

Nama Deskripsi
DFX_Binary Mentransfer array byte tipe CByteArray.
DFX_Bool Mentransfer data Boolean.
DFX_Byte Mentransfer satu byte data.
DFX_Currency Mentransfer data mata uang, jenis COleCurrency.
DFX_DateTime Mentransfer data waktu dan tanggal, jenis COleDateTime.
DFX_Double Mentransfer data float presisi ganda.
DFX_Long Mentransfer data bilangan bulat panjang.
DFX_LongBinary Mentransfer data objek besar biner (BLOB) dengan objek CLongBinary kelas . Untuk DAO, disarankan agar Anda menggunakan DFX_Binary sebagai gantinya.
DFX_Short Mentransfer data bilangan bulat pendek.
DFX_Single Mentransfer data float.
DFX_Text Mentransfer data string.

=============================================

RFX_Binary

Mentransfer array byte antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_BINARY, SQL_VARBINARY, atau SQL_LONGVARBINARY.

Sintaks

void RFX_Binary(
   CFieldExchange* pFX,
   const char* szName,
   CByteArray& value,
   int nMaxLength = 255);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis CByteArray, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

nMaxLength
Panjang maksimum yang diizinkan dari string atau array yang ditransfer. Nilai default nMaxLength adalah 255. Nilai hukum adalah 1 hingga INT_MAX. Kerangka kerja mengalokasikan jumlah ruang ini untuk data. Untuk performa terbaik, berikan nilai yang cukup besar untuk mengakomodasi item data terbesar yang Anda harapkan.

Keterangan

Data dalam sumber data jenis ini dipetakan ke dan dari jenis CByteArray dalam kumpulan rekaman.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Bool

Mentransfer data Boolean antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_BIT.

Sintaks

void RFX_Bool(
   CFieldExchange* pFX,
   const char* szName,
   BOOL& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis BOOL, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Byte

Mentransfer byte tunggal antara anggota data bidang objek CRecordset dan kolom rekaman pada sumber data jenis ODBC SQL_TINYINT.

Sintaks

void RFX_Byte(
   CFieldExchange* pFX,
   const char* szName,
   BYTE& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis BYTE, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Date

CTime Mentransfer atau TIMESTAMP_STRUCT data antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_DATE, SQL_TIME, atau SQL_TIMESTAMP.

Sintaks

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   CTime& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   TIMESTAMP_STRUCT& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   COleDateTime& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan; nilai yang akan ditransfer. Berbagai versi fungsi mengambil jenis data yang berbeda untuk nilai:

Versi pertama fungsi mengambil referensi ke objek CTime . Untuk transfer dari kumpulan rekaman ke sumber data, nilai ini diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Versi kedua fungsi mengambil referensi ke TIMESTAMP_STRUCT struktur. Anda harus menyiapkan struktur ini sendiri sebelum panggilan. Dukungan pertukaran data dialog (DDX) maupun dukungan wizard kode tidak tersedia untuk versi ini. Versi ketiga fungsi berfungsi mirip dengan versi pertama kecuali bahwa ia mengambil referensi ke objek COleDateTime .

Keterangan

Versi CTime fungsi memberlakukan overhead dari beberapa pemrosesan menengah dan memiliki rentang yang agak terbatas. Jika Anda menemukan salah satu faktor ini terlalu membatasi, gunakan versi kedua fungsi. Tetapi perhatikan kurangnya wizard kode dan dukungan DDX dan persyaratan bahwa Anda menyiapkan struktur sendiri.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Double

Mentransfer data float ganda antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_DOUBLE.

Sintaks

void RFX_Double(
   CFieldExchange* pFX,
   const char* szName,
   double& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis double, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Int

Mentransfer data bilangan bulat antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_SMALLINT.

Sintaks

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis int, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Long

Mentransfer data bilangan bulat panjang antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_INTEGER.

Sintaks

void RFX_Long(
   CFieldExchange* pFX,
   const char* szName,
   LONG&
value );

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis long, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_LongBinary

Mentransfer data objek besar biner (BLOB) menggunakan kelas CLongBinary antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_LONGVARBINARY atau SQL_LONGVARCHAR.

Sintaks

void RFX_LongBinary(
   CFieldExchange* pFX,
   const char* szName,
   CLongBinary& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis CLongBinary, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Single

Mentransfer data floating-point antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_REAL.

Sintaks

void RFX_Single(
   CFieldExchange* pFX,
   const char* szName,
   float& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis float, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Text

CString Mentransfer data antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL, atau SQL_NUMERIC.

Sintaks

void RFX_Text(
   CFieldExchange* pFX,
   const char* szName,
   CString& value,
   int nMaxLength = 255,
   int nColumnType = SQL_VARCHAR,
   short nScale = 0);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis CString, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

nMaxLength
Panjang maksimum yang diizinkan dari string atau array yang ditransfer. Nilai default nMaxLength adalah 255. Nilai hukum adalah 1 hingga INT_MAX). Kerangka kerja mengalokasikan jumlah ruang ini untuk data. Untuk performa terbaik, berikan nilai yang cukup besar untuk mengakomodasi item data terbesar yang Anda harapkan.

nColumnType
Digunakan terutama untuk parameter. Bilangan bulat yang menunjukkan jenis data parameter. Jenisnya adalah jenis data ODBC dari formulir SQL_XXX.

nScale
Menentukan skala untuk nilai jenis ODBC SQL_DECIMAL atau SQL_NUMERIC. nScale hanya berguna saat mengatur nilai parameter. Untuk informasi selengkapnya, lihat topik "Presisi, Skala, Panjang, dan Ukuran Tampilan" di Lampiran D dari Referensi Programmer ODBC SDK.

Keterangan

Data dalam sumber data dari semua jenis ini dipetakan ke dan dari CString dalam himpunan catatan.

Contoh

Contoh ini menunjukkan beberapa panggilan ke RFX_Text. Perhatikan juga dua panggilan ke CFieldExchange::SetFieldType. Untuk parameter, Anda harus menulis panggilan ke SetFieldType dan panggilan RFX-nya. Panggilan kolom output dan panggilan RFX terkait biasanya ditulis oleh wizard kode.

void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   // Macros such as RFX_Text() and RFX_Int() are dependent on the
   // type of the member variable, not the type of the field in the database.
   // ODBC will try to automatically convert the column value to the requested type
   RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
   RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
   RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
   RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
   RFX_Long(pFX, _T("[BillingID]"), m_BillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

Persyaratan

Header: afxdb.h

RFX_Binary_Bulk

Mentransfer beberapa baris data byte dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Binary_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths,
   int nMaxLength);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgByteVals
Penunjuk ke array nilai BYTE. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditujukkan oleh prgByteVals. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

nMaxLength
Panjang maksimum yang diizinkan dari nilai yang disimpan dalam array yang ditujukkan oleh prgByteVals. Untuk memastikan bahwa data tidak akan dipotong, berikan nilai yang cukup besar untuk mengakomodasi item data terbesar yang Anda harapkan.

Keterangan

Kolom sumber data dapat memiliki jenis ODBC SQL_BINARY, SQL_VARBINARY, atau SQL_LONGVARBINARY. Himpunan catatan harus menentukan anggota data bidang dari penunjuk jenis ke BYTE.

Jika Anda menginisialisasi prgByteVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Untuk membuat recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Lihat RFX_Text_Bulk.

Persyaratan

Header: afxdb.h

RFX_Bool_Bulk

Mentransfer beberapa baris data Boolean dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Bool_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BOOL** prgBoolVals,
   long** prgLengths);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgBoolVals
Penunjuk ke array nilai BOOL. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditunjukkan oleh prgBoolVals. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

Keterangan

Kolom sumber data harus memiliki jenis ODBC SQL_BIT. Himpunan catatan harus menentukan anggota data bidang dari jenis penunjuk ke BOOL.

Jika Anda menginisialisasi prgBoolVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Agar recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Lihat RFX_Text_Bulk.

Persyaratan

Header: afxdb.h

RFX_Byte_Bulk

Mentransfer beberapa baris byte tunggal dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Byte_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgByteVals
Penunjuk ke array nilai BYTE. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditujukkan oleh prgByteVals. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

Keterangan

Kolom sumber data harus memiliki jenis ODBC SQL_TINYINT. Himpunan catatan harus menentukan anggota data bidang dari penunjuk jenis ke BYTE.

Jika Anda menginisialisasi prgByteVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Agar recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Lihat RFX_Text_Bulk.

Persyaratan

Header: afxdb.h

RFX_Date_Bulk

Mentransfer beberapa baris data TIMESTAMP_STRUCT dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Date_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   TIMESTAMP_STRUCT** prgTSVals,
   long** prgLengths);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgTSVals
Penunjuk ke array nilai TIMESTAMP_STRUCT. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman. Untuk informasi selengkapnya tentang jenis data TIMESTAMP_STRUCT, lihat topik "Jenis Data C" di Lampiran D dari Referensi Programmer ODBC SDK.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditujukkan oleh prgTSVals. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

Keterangan

Kolom sumber data dapat memiliki jenis ODBC SQL_DATE, SQL_TIME, atau SQL_TIMESTAMP. Himpunan catatan harus menentukan anggota data bidang dari penunjuk jenis ke TIMESTAMP_STRUCT.

Jika Anda menginisialisasi prgTSVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Agar recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Lihat RFX_Text_Bulk.

Persyaratan

Header: afxdb.h

RFX_Double_Bulk

Mentransfer beberapa baris data presisi ganda dan floating-point dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Double_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   double** prgDblVals,
   long** prgLengths);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgDblVals
Penunjuk ke array double nilai. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditujukkan oleh prgDblVals. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

Keterangan

Kolom sumber data harus memiliki jenis ODBC SQL_DOUBLE. Kumpulan rekaman harus menentukan anggota data bidang dari penunjuk jenis ke double.

Jika Anda menginisialisasi prgDblVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Agar recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Lihat RFX_Text_Bulk.

Persyaratan

Header: afxdb.h

RFX_Int_Bulk

Mentransfer data bilangan bulat antara anggota CRecordset data bidang objek dan kolom rekaman pada sumber data jenis ODBC SQL_SMALLINT.

Sintaks

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Parameter

pFX
Penunjuk ke objek kelas CFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya tentang operasi yang CFieldExchange bisa ditentukan objek, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis int, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

Contoh

Lihat RFX_Text.

Persyaratan

Header: afxdb.h

RFX_Long_Bulk

Mentransfer beberapa baris data bilangan bulat panjang dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Long_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   long** prgLongVals,
   long** prgLengths);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgLongVals
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditujukkan oleh prgLongVals. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

Keterangan

Kolom sumber data harus memiliki jenis ODBC SQL_INTEGER. Kumpulan rekaman harus menentukan anggota data bidang dari penunjuk jenis ke long.

Jika Anda menginisialisasi prgLongVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Agar recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Lihat RFX_Text_Bulk.

Persyaratan

Header: afxdb.h

RFX_Single_Bulk

Mentransfer beberapa baris data floating-point dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Single_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   float** prgFltVals,
   long** prgLengths);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgFltVals
Penunjuk ke array float nilai. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditujukkan oleh prgFltVals. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

Keterangan

Kolom sumber data harus memiliki jenis ODBC SQL_REAL. Kumpulan rekaman harus menentukan anggota data bidang dari penunjuk jenis ke float.

Jika Anda menginisialisasi prgFltVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Agar recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Lihat RFX_Text_Bulk.

Persyaratan

Header: afxdb.h

RFX_Text_Bulk

Mentransfer beberapa baris data karakter dari kolom sumber data ODBC ke array yang sesuai dalam CRecordsetobjek -turunan.

Sintaks

void RFX_Text_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   LPSTR* prgStrVals,
   long** prgLengths,
   int nMaxLength);

Parameter

pFX
Penunjuk ke objek CFieldExchange . Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi. Untuk informasi selengkapnya, lihat artikel Pertukaran Bidang Rekaman: Cara Kerja RFX.

szName
Nama kolom data.

prgStrVals
Penunjuk ke array nilai LPSTR. Array ini akan menyimpan data yang akan ditransfer dari sumber data ke kumpulan rekaman. Perhatikan bahwa dengan versi ODBC saat ini, nilai-nilai ini tidak boleh Unicode.

prgLengths
Penunjuk ke array bilangan bulat panjang. Array ini akan menyimpan panjang dalam byte dari setiap nilai dalam array yang ditujukkan oleh prgStrVals. Panjang ini mengecualikan karakter penghentian null. Perhatikan bahwa nilai SQL_NULL_DATA akan disimpan jika item data terkait berisi nilai Null. Untuk detail selengkapnya, lihat fungsi SQLBindCol ODBC API di Referensi Pemrogram ODBC SDK.

nMaxLength
Panjang maksimum yang diizinkan dari nilai yang disimpan dalam array yang ditujukkan oleh prgStrVals, termasuk karakter penghentian null. Untuk memastikan bahwa data tidak akan dipotong, berikan nilai yang cukup besar untuk mengakomodasi item data terbesar yang Anda harapkan.

Keterangan

Kolom sumber data dapat memiliki jenis ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL, atau SQL_NUMERIC. Himpunan catatan harus menentukan anggota data bidang dari jenis LPSTR.

Jika Anda menginisialisasi prgStrVals dan prgLengths ke NULL, maka array yang mereka arahkan akan dialokasikan secara otomatis, dengan ukuran yang sama dengan ukuran set baris.

Catatan

Pertukaran bidang rekaman massal hanya mentransfer data dari sumber data ke objek recordset. Agar recordset Anda dapat diperbarui, Anda harus menggunakan fungsi SQLSetPosODBC API .

Untuk informasi selengkapnya, lihat artikel Recordset: Mengambil Rekaman secara Massal (ODBC) dan Record Field Exchange (RFX).

Contoh

Anda harus menulis panggilan secara manual dalam penimpaan Anda DoBulkFieldExchange . Contoh ini menunjukkan panggilan ke RFX_Text_Bulk, serta panggilan ke RFX_Long_Bulk, untuk transfer data. Panggilan ini didahului oleh panggilan ke CFieldExchange::SetFieldType. Perhatikan bahwa untuk parameter, Anda harus memanggil fungsi RFX alih-alih fungsi RFX Massal.

void CMultiCustomer::DoBulkFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Long_Bulk(pFX, _T("[CustomerID]"), &m_pCustomerID, &m_pcCustomerID);
   RFX_Text_Bulk(pFX, _T("[ContactFirstName]"), &m_pContactFirstName, &m_pcContactFirstName, 50);
   RFX_Text_Bulk(pFX, _T("[PostalCode]"), &m_pPostalCode, &m_pcPostalCode, 50);
   RFX_Text_Bulk(pFX, _T("[L_Name]"), &m_pL_Name, &m_pcL_Name, 50);
   RFX_Long_Bulk(pFX, _T("[BillingID]"), &m_pBillingID, &m_pcBillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

Persyaratan

Header: afxdb.h

DFX_Binary

Mentransfer array byte antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Binary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CByteArray& value,
   int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis CByteArray, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

nPreAllocSize
Kerangka kerja melakukan pra-alokasi jumlah memori ini. Jika data Anda lebih besar, kerangka kerja akan mengalokasikan lebih banyak ruang sesuai kebutuhan. Untuk performa yang lebih baik, atur ukuran ini ke nilai yang cukup besar untuk mencegah realokasi. Ukuran default ditentukan dalam AFXDAO. File H sebagai AFX_DAO_BINARY_DEFAULT_SIZE.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Default, AFX_DAO_DISABLE_FIELD_CACHE, tidak menggunakan buffering ganda, dan Anda harus memanggil SetFieldDirty dan SetFieldNull sendiri. Nilai lain yang mungkin, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda, dan Anda tidak perlu melakukan pekerjaan ekstra untuk menandai bidang kotor atau Null. Untuk alasan performa dan memori, hindari nilai ini kecuali data biner Anda relatif kecil.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda untuk semua bidang secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_BYTES di DAO dan ketik CByteArray di kumpulan rekaman.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Bool

Mentransfer data Boolean antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Bool(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BOOL& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis BOOL, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_BOOL di DAO dan ketik BOOL dalam kumpulan catatan.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Byte

Mentransfer byte tunggal antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Byte(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BYTE& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis BYTE, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_BYTES di DAO dan ketik BYTE dalam kumpulan rekaman.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Currency

Mentransfer data mata uang antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Currency(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleCurrency& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai ini diambil dari anggota data yang ditentukan, dari jenis COleCurrency. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_CURRENCY di DAO dan ketik COleCurrency di kumpulan rekaman.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_DateTime

Mentransfer data waktu dan tanggal antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_DateTime(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleDateTime& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Fungsi ini mengambil referensi ke objek COleDateTime . Untuk transfer dari kumpulan rekaman ke sumber data, nilai ini diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_DATE di DAO dan ketik COleDateTime di kumpulan rekaman.

Catatan

COleDateTimemenggantikan CTime dan TIMESTAMP_STRUCT untuk tujuan ini di kelas DAO. CTime dan TIMESTAMP_STRUCT masih digunakan untuk kelas akses data berbasis ODBC.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Double

Mentransfer data float ganda antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Double(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   double& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis double, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_R8 di DAO dan jenis float ganda dalam kumpulan rekaman.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Long

Mentransfer data bilangan bulat panjang antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Long(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   long& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis long, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_I4 di DAO dan ketik long dalam kumpulan rekaman.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_LongBinary

Penting Disarankan agar Anda menggunakan DFX_Binary alih-alih fungsi ini.

Sintaks

void AFXAPI DFX_LongBinary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CLongBinary& value,
   DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis CLongBinary, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwPreAllocSize
Kerangka kerja melakukan pra-alokasi jumlah memori ini. Jika data Anda lebih besar, kerangka kerja akan mengalokasikan lebih banyak ruang sesuai kebutuhan. Untuk performa yang lebih baik, atur ukuran ini ke nilai yang cukup besar untuk mencegah realokasi.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DISABLE_FIELD_CACHE, tidak menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_ENABLE_FIELD_CACHE. Menggunakan buffering ganda, dan Anda tidak perlu melakukan pekerjaan ekstra untuk menandai bidang kotor atau Null. Untuk alasan performa dan memori, hindari nilai ini kecuali data biner Anda relatif kecil.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

DFX_LongBinary disediakan untuk kompatibilitas dengan kelas MFC ODBC. Fungsi ini DFX_LongBinary mentransfer data objek besar biner (BLOB) menggunakan kelas CLongBinary antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data. Data dipetakan antara jenis DAO_BYTES di DAO dan ketik CLongBinary dalam kumpulan rekaman.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Short

Mentransfer data bilangan bulat pendek antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Short(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   short& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis short, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_I2 di DAO dan ketik short dalam kumpulan rekaman.

Catatan

DFX_Short setara dengan RFX_Int untuk kelas berbasis ODBC.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Single

Mentransfer data floating-point antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Single(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   float& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis float, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Kau harus menelepon SetFieldDirty dan SetFieldNull dirimu sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_R4 di DAO dan ketik float dalam kumpulan rekaman.

Contoh

Lihat DFX_Text.

Persyaratan

Header: afxdao.h

DFX_Text

CString Mentransfer data antara anggota data bidang objek CDaoRecordset dan kolom rekaman pada sumber data.

Sintaks

void AFXAPI DFX_Text(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CString& value,
   int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parameter

pFX
Penunjuk ke objek kelas CDaoFieldExchange. Objek ini berisi informasi untuk menentukan konteks untuk setiap panggilan fungsi.

szName
Nama kolom data.

value
Nilai yang disimpan dalam anggota data yang ditunjukkan — nilai yang akan ditransfer. Untuk transfer dari kumpulan rekaman ke sumber data, nilai, jenis CString, diambil dari anggota data yang ditentukan. Untuk transfer dari sumber data ke kumpulan rekaman, nilai disimpan di anggota data yang ditentukan.

nPreAllocSize
Kerangka kerja melakukan pra-alokasi jumlah memori ini. Jika data Anda lebih besar, kerangka kerja akan mengalokasikan lebih banyak ruang sesuai kebutuhan. Untuk performa yang lebih baik, atur ukuran ini ke nilai yang cukup besar untuk mencegah realokasi.

dwBindOptions
Opsi yang memungkinkan Anda memanfaatkan mekanisme buffering ganda MFC untuk mendeteksi bidang recordset yang telah berubah. Defaultnya, AFX_DAO_ENABLE_FIELD_CACHE, menggunakan buffering ganda. Nilai lain yang mungkin adalah AFX_DAO_DISABLE_FIELD_CACHE. Jika Anda menentukan nilai ini, MFC tidak melakukan pemeriksaan pada bidang ini. Anda harus memanggil SetFieldDirty dan SetFieldNull sendiri.

Catatan

Anda dapat mengontrol apakah data di-buffer ganda secara default dengan mengatur CDaoRecordset::m_bCheckCacheForDirtyFields.

Keterangan

Data dipetakan antara jenis DAO_CHAR di DAO (atau, jika simbol _UNICODE ditentukan, DAO_WCHAR) dan ketik CString dalam kumpulan rekaman. n

Contoh

Contoh ini menunjukkan beberapa panggilan ke DFX_Text. Perhatikan juga dua panggilan ke CDaoFieldExchange::SetFieldType. Anda harus menulis panggilan pertama ke SetFieldType dan panggilan DFX-nya. Panggilan kedua dan panggilan DFX terkait biasanya ditulis oleh wizard kode yang menghasilkan kelas .

void CCustSet::DoFieldExchange(CDaoFieldExchange* pFX)
{
   pFX->SetFieldType(CDaoFieldExchange::param);
   DFX_Text(pFX, _T("Param"), m_strParam);
   pFX->SetFieldType(CDaoFieldExchange::outputColumn);
   DFX_Short(pFX, _T("EmployeeID"), m_EmployeeID);
   DFX_Text(pFX, _T("LastName"), m_LastName);
   DFX_Short(pFX, _T("Age"), m_Age);
   DFX_DateTime(pFX, _T("hire_date"), m_hire_date);
   DFX_DateTime(pFX, _T("termination_date"), m_termination_date);

   CDaoRecordset::DoFieldExchange(pFX);
}

Persyaratan

Header: afxdao.h

Baca juga

Makro dan Global
CRecordset::D oFieldExchange
CRecordset::D oBulkFieldExchange
CDaoRecordset::D oFieldExchange