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 CRecordset
objek -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 SQLSetPos
ODBC 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 CRecordset
objek -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 SQLSetPos
ODBC 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 CRecordset
objek -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 SQLSetPos
ODBC 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 CRecordset
objek -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 SQLSetPos
ODBC 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 CRecordset
objek -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 SQLSetPos
ODBC 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 CRecordset
objek -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 SQLSetPos
ODBC 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 CRecordset
objek -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 SQLSetPos
ODBC 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 CRecordset
objek -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 SQLSetPos
ODBC 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
COleDateTime
menggantikan 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk