レコード フィールド エクスチェンジ (RFX) 関数
ここでは、レコードセット オブジェクトとそのデータ ソース間のデータ転送を自動化したり、データに対してその他の操作を実行したりするためのレコード フィールド エクスチェンジの関数 (RFX、 バルク RFX、および DFX) の一覧を示します。
ODBC ベースのクラスを使用し、バルク行フェッチを実装している場合は、データ ソース列に対応する各データ メンバーに対してバルク RFX 関数を呼び出すことによって、 DoBulkFieldExchange
の CRecordset
メンバー関数を手動でオーバーライドする必要があります。
ODBC ベースのクラスで一括行フェッチを実装していない場合、または DAO ベースのクラス (廃止) を使用している場合、ClassWizard は、レコードセット内の各フィールド データ メンバーの CDaoRecordset
CRecordset
RFX 関数 (ODBC クラスの場合) または DFX 関数 (DAO クラスの場合) のメンバー関数をオーバーライドDoFieldExchange
します。
レコード フィールド エクスチェンジ関数は、フレームワークが DoFieldExchange
または DoBulkFieldExchange
を呼び出すたびにデータを転送します。 それぞれの関数が特定のデータ型を転送します。
これらの関数の使い方の詳細については、「 レコード フィールド エクスチェンジ: RFX のしくみ (ODBC)」を参照してください。 バルク行フェッチの詳細については、「 レコードセット: バルク行フェッチ (ODBC)」を参照してください。
動的にバインドするデータの列では、RFX 関数または DFX 関数を手動で呼び出すこともできます。詳細については、「 レコードセット: データ列を動的に結びつける方法 (ODBC)」を参照してください。 また、独自のカスタム RFX ルーチンまたは DFX ルーチンを記述することもできます。詳細については、テクニカル ノート 43 (ODBC の場合) およびテクニカル ノート 53 (DAO の場合) を参照してください。
RFX 関数と一括 RFX 関数DoFieldExchange
の例については、RFX_Textおよび DoBulkFieldExchange
[RFX_Text_Bulk]#rfx_text_bulk) を参照してください。 DFX 関数は RFX 関数によく似ています。
RFX 関数 (ODBC)
名前 | 説明 |
---|---|
RFX_Binary | CByteArray型のバイト配列を転送します。 |
RFX_Bool | ブール型のデータを転送します。 |
RFX_Byte | シングル バイトのデータを転送します。 |
RFX_Date | CTime または TIMESTAMP_STRUCT を使用して、時刻と日付のデータを転送します。 |
RFX_Double | 倍精度浮動小数点型のデータを転送します。 |
RFX_Int | 整数型のデータを転送します。 |
RFX_Long | 長整数型のデータを転送します。 |
RFX_LongBinary | CLongBinary クラスのオブジェクトを使用して、バイナリ ラージ オブジェクト (BLOB) データを転送します。 |
RFX_Single | 浮動小数点型のデータを転送します。 |
RFX_Text | 文字列型のデータを転送します。 |
バルク RFX 関数 (ODBC)
名前 | 説明 |
---|---|
RFX_Binary_Bulk | バイト データの配列を転送します。 |
RFX_Bool_Bulk | ブール型のデータの配列を転送します。 |
RFX_Byte_Bulk | シングル バイトの配列を転送します。 |
RFX_Date_Bulk | TIMESTAMP_STRUCT型のデータの配列を転送します。 |
RFX_Double_Bulk | 倍精度浮動小数点型のデータの配列を転送します。 |
RFX_Int_Bulk | 整数型のデータの配列を転送します。 |
RFX_Long_Bulk | 長整数型のデータの配列を転送します。 |
RFX_Single_Bulk | 浮動小数点型のデータの配列を転送します。 |
RFX_Text_Bulk | LPSTR型のデータの配列を転送します。 |
DFX 関数 (DAO)
名前 | 説明 |
---|---|
DFX_Binary | CByteArray型のバイト配列を転送します。 |
DFX_Bool | ブール型のデータを転送します。 |
DFX_Byte | シングル バイトのデータを転送します。 |
DFX_Currency | COleCurrency型の通貨データを転送します。 |
DFX_DateTime | COleDateTime型の時刻と日付データを転送します。 |
DFX_Double | 倍精度浮動小数点型のデータを転送します。 |
DFX_Long | 長整数型のデータを転送します。 |
DFX_LongBinary | CLongBinary クラスのオブジェクトを使用して、バイナリ ラージ オブジェクト (BLOB) データを転送します。 DAO の場合は、代わりに DFX_Binary を使用することをお勧めします。 |
DFX_Short | 短整数型のデータを転送します。 |
DFX_Single | 浮動小数点型のデータを転送します。 |
DFX_Text | 文字列型のデータを転送します。 |
=============================================
RFX_Binary
オブジェクトのフィールド データ メンバー CRecordset
と ODBC 型SQL_BINARY、SQL_VARBINARY、またはSQL_LONGVARBINARYのデータ ソース上のレコードの列の間でバイト配列を転送します。
構文
void RFX_Binary(
CFieldExchange* pFX,
const char* szName,
CByteArray& value,
int nMaxLength = 255);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、CByteArray 型の値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
nMaxLength
転送される文字列または配列の最大許容長。 nMaxLength の既定値は 255 です。 有効な値は 1 ~ INT_MAXです。 フレームワークは、この量の領域をデータに割り当てます。 最適なパフォーマンスを得るために、予想される最大のデータ項目に対応するのに十分な大きさの値を渡します。
解説
これらの型のデータ ソース内のデータは、レコードセット内の型 CByteArray
との間でマップされます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Bool
オブジェクトのフィールド データ メンバーと ODBC 型SQL_BIT CRecordset
のデータ ソース上のレコードの列の間でブールデータを転送します。
構文
void RFX_Bool(
CFieldExchange* pFX,
const char* szName,
BOOL& value);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、BOOL 型の値は、指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Byte
オブジェクトのフィールド データ メンバーと ODBC 型の CRecordset
データ ソース上のレコードの列の間で 1 バイトSQL_TINYINT転送します。
構文
void RFX_Byte(
CFieldExchange* pFX,
const char* szName,
BYTE& value);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、BYTE 型の値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Date
オブジェクトのフィールド データ メンバーCRecordset
と、ODBC 型SQL_DATE、SQL_TIME、またはSQL_TIMESTAMPのデータ ソース上のレコードの列の間でデータを転送CTime
またはTIMESTAMP_STRUCTします。
構文
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);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバーに格納されている値。転送する値。 関数のさまざまなバージョンでは、値に対して異なるデータ型が使用されます。
関数の最初のバージョンは、CTime オブジェクトへの参照を受け取ります。 レコードセットからデータ ソースへの転送の場合、この値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
関数の 2 番目のバージョンは、構造体への参照を TIMESTAMP_STRUCT
受け取ります。 この構造体は、呼び出しの前に自分で設定する必要があります。 このバージョンでは、ダイアログ データ交換 (DDX) のサポートもコード ウィザードのサポートも使用できません。 3 番目のバージョンの関数は、COleDateTime オブジェクトへの参照を受け取る点を除き、最初のバージョンと同様に動作します。
解説
この関数のバージョンでは CTime
、中間処理のオーバーヘッドが発生し、範囲がやや限られています。 これらの要因のいずれかが制限されすぎる場合は、2 番目のバージョンの関数を使用します。 ただし、コード ウィザードと DDX サポートの欠如と、自分で構造を設定する必要があることに注意してください。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Double
オブジェクトのフィールド データ メンバーと ODBC 型SQL_DOUBLECRecordset
のデータ ソース上のレコードの列の間で、二重浮動小数点データを転送します。
構文
void RFX_Double(
CFieldExchange* pFX,
const char* szName,
double& value);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 double
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Int
オブジェクトのフィールド データ メンバーと ODBC 型の CRecordset
データ ソース上のレコードの列の間で整数データを転送SQL_SMALLINT。
構文
void RFX_Int(
CFieldExchange* pFX,
const char* szName,
int& value);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 int
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Long
オブジェクトのフィールド データ メンバーと ODBC 型のデータ ソース上の CRecordset
レコードの列の間で、長整数データSQL_INTEGER転送します。
構文
void RFX_Long(
CFieldExchange* pFX,
const char* szName,
LONG&
value );
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 long
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_LongBinary
CLongBinary クラスを使用してバイナリ ラージ オブジェクト (BLOB) データを、オブジェクトのフィールド データ メンバーと ODBC 型のCRecordset
データ ソース上のレコードの列の間でSQL_LONGVARBINARYまたはSQL_LONGVARCHAR転送します。
構文
void RFX_LongBinary(
CFieldExchange* pFX,
const char* szName,
CLongBinary& value);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 CLongBinary
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Single
オブジェクトのフィールド データ メンバーと ODBC 型SQL_REAL CRecordset
のデータ ソース上のレコードの列の間で浮動小数点データを転送します。
構文
void RFX_Single(
CFieldExchange* pFX,
const char* szName,
float& value);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 float
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Text
オブジェクトのフィールド データ メンバーと、ODBC 型SQL_LONGVARCHARCRecordset
、SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL、またはSQL_NUMERICのデータ ソース上のレコードの列の間でデータを転送CString
します。
構文
void RFX_Text(
CFieldExchange* pFX,
const char* szName,
CString& value,
int nMaxLength = 255,
int nColumnType = SQL_VARCHAR,
short nScale = 0);
パラメーター
Pfx
クラス CFieldExchange
のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 CString
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
nMaxLength
転送される文字列または配列の最大許容長。 nMaxLength の既定値は 255 です。 有効な値は 1 ~ INT_MAX) です。 フレームワークは、この量の領域をデータに割り当てます。 最適なパフォーマンスを得るために、予想される最大のデータ項目に対応するのに十分な大きさの値を渡します。
nColumnType
パラメーターメインに使用されます。 パラメーターのデータ型を示す整数。 この型は、フォーム SQL_XXXの ODBC データ型です。
nScale
ODBC 型のSQL_DECIMALまたはSQL_NUMERICの値のスケールを指定します。 nScale は、パラメーター値を設定する場合にのみ役立ちます。 詳細については、ODBC SDK プログラマ リファレンスの付録 D の「有効桁数、小数点以下桁数、長さ、および表示サイズ」を参照してください。
解説
これらのすべての型のデータ ソース内のデータは、レコードセットとの間でマップされます CString
。
例
この例では、次のいくつかの呼び出しを RFX_Text
示します。 また、2 つの呼び出しに注意してください CFieldExchange::SetFieldType
。 パラメーターの場合は、呼び出しとその RFX 呼び出しを記述する SetFieldType
必要があります。 出力列の呼び出しとそれに関連付けられている RFX 呼び出しは、通常、コード ウィザードによって記述されます。
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);
}
必要条件
ヘッダー: afxdb.h
RFX_Binary_Bulk
ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、バイト データの複数の行を CRecordset
転送します。
構文
void RFX_Binary_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
BYTE** prgByteVals,
long** prgLengths,
int nMaxLength);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgByteVals
BYTE 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。
prgLengths
長整数の配列へのポインター。 この配列は、prgByteVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
nMaxLength
prgByteVals が指す配列に格納される値の最大許容長。 データが切り捨てられないようにするには、予想される最大のデータ項目に対応できる十分な大きさの値を渡します。
解説
データ ソース列には、SQL_BINARY、SQL_VARBINARY、またはSQL_LONGVARBINARYの ODBC 型を指定できます。 レコードセットは、BYTE へのポインター型のフィールド データ メンバーを定義する必要があります。
prgByteVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
RFX_Text_Bulkを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Bool_Bulk
ODBC データ ソースの列から、-derived オブジェクト内の対応する配列に複数行のブールデータを CRecordset
転送します。
構文
void RFX_Bool_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
BOOL** prgBoolVals,
long** prgLengths);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgBoolVals
BOOL 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。
prgLengths
長整数の配列へのポインター。 この配列は、prgBoolVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
解説
データ ソース列には、ODBC 型のSQL_BITが必要です。 レコードセットは、BOOL へのポインター型のフィールド データ メンバーを定義する必要があります。
prgBoolVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット サイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
RFX_Text_Bulkを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Byte_Bulk
ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、1 バイトの複数の行を CRecordset
転送します。
構文
void RFX_Byte_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
BYTE** prgByteVals,
long** prgLengths);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgByteVals
BYTE 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。
prgLengths
長整数の配列へのポインター。 この配列は、prgByteVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
解説
データ ソース列には、odbc 型のSQL_TINYINTが必要です。 レコードセットは、BYTE へのポインター型のフィールド データ メンバーを定義する必要があります。
prgByteVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
RFX_Text_Bulkを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Date_Bulk
ODBC データ ソースの列から、TIMESTAMP_STRUCT データの複数の行を、-derived オブジェクト内の対応する配列に CRecordset
転送します。
構文
void RFX_Date_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
TIMESTAMP_STRUCT** prgTSVals,
long** prgLengths);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgTSVals
TIMESTAMP_STRUCT値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。 TIMESTAMP_STRUCTデータ型の詳細については、「ODBC SDK プログラマー リファレンス」の付録 D の「C データ型」を参照してください。
prgLengths
長整数の配列へのポインター。 この配列は、prgTSVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
解説
データ ソース列には、SQL_DATE、SQL_TIME、またはSQL_TIMESTAMPの ODBC 型を指定できます。 レコードセットは、TIMESTAMP_STRUCTへのポインター型のフィールド データ メンバーを定義する必要があります。
prgTSVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
RFX_Text_Bulkを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Double_Bulk
ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、倍精度浮動小数点データの複数の行を CRecordset
転送します。
構文
void RFX_Double_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
double** prgDblVals,
long** prgLengths);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgDblVals
値の double
配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。
prgLengths
長整数の配列へのポインター。 この配列は、prgDblVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
解説
データ ソース列には、odbc 型のSQL_DOUBLEが必要です。 レコードセットは、ポインター型のフィールド データ メンバーを定義する double
必要があります。
prgDblVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
RFX_Text_Bulkを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Int_Bulk
オブジェクトのフィールド データ メンバーと ODBC 型の CRecordset
データ ソース上のレコードの列の間で整数データを転送SQL_SMALLINT。
構文
void RFX_Int(
CFieldExchange* pFX,
const char* szName,
int& value);
パラメーター
Pfx
CFieldExchange クラスのオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 オブジェクトで指定できる操作CFieldExchange
の詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 int
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
例
RFX_Textを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Long_Bulk
ODBC データ ソースの列から-derived オブジェクト内の対応する配列に、長整数データの複数の行を CRecordset
転送します。
構文
void RFX_Long_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
long** prgLongVals,
long** prgLengths);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgLongVals
長整数の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。
prgLengths
長整数の配列へのポインター。 この配列は、prgLongVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
解説
データ ソース列には、odbc 型のSQL_INTEGERが必要です。 レコードセットは、ポインター型のフィールド データ メンバーを定義する long
必要があります。
prgLongVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット サイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
RFX_Text_Bulkを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Single_Bulk
ODBC データ ソースの列から、-derived オブジェクト内の対応する配列に複数行の浮動小数点データを CRecordset
転送します。
構文
void RFX_Single_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
float** prgFltVals,
long** prgLengths);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgFltVals
値の float
配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。
prgLengths
長整数の配列へのポインター。 この配列は、prgFltVals が指す配列内の各値の長さをバイト単位で 格納します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
解説
データ ソース列には、odbc 型のSQL_REALが必要です。 レコードセットは、ポインター型のフィールド データ メンバーを定義する float
必要があります。
prgFltVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
RFX_Text_Bulkを参照してください。
必要条件
ヘッダー: afxdb.h
RFX_Text_Bulk
ODBC データ ソースの列から、-derived オブジェクト内の対応する配列に複数行の文字データを CRecordset
転送します。
構文
void RFX_Text_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
LPSTR* prgStrVals,
long** prgLengths,
int nMaxLength);
パラメーター
Pfx
CFieldExchange オブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。 詳細については、「レコード フィールド交換: RFX のしくみ」を参照してください。
Szname
データ列の名前。
prgStrVals
LPSTR 値の配列へのポインター。 この配列には、データ ソースからレコードセットに転送されるデータが格納されます。 ODBC の現在のバージョンでは、これらの値を Unicode にすることはできません。
prgLengths
長整数の配列へのポインター。 この配列は、prgStrVals が指す配列内の各値の長さをバイト単位で 格納します。 この長さは、null 終了文字を除外します。 対応するデータ項目に Null 値が含まれている場合、SQL_NULL_DATA値が格納されることに注意してください。 詳細については、「ODBC SDK プログラマ リファレンス」の ODBC API 関数 SQLBindCol
を 参照してください。
nMaxLength
prgStrVals が指す配列に格納されている値の最大許容長 (null 終端文字を含む)。 データが切り捨てられないようにするには、予想される最大のデータ項目に対応できる十分な大きさの値を渡します。
解説
データ ソース列には、SQL_LONGVARCHAR、SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL、またはSQL_NUMERICの ODBC 型を指定できます。 レコードセットは、LPSTR 型のフィールド データ メンバーを定義する必要があります。
prgStrVals と prgLengths を NULL に初期化すると、それらが指す配列は、行セット のサイズと同じサイズで自動的に割り当てられます。
Note
一括レコード フィールド交換では、データ ソースからレコードセット オブジェクトにデータのみが転送されます。 レコードセットを更新可能にするには、ODBC API 関数 SQLSetPos
を使用する必要があります。
詳細については、「Recordset: Fetching Records in Bulk (ODBC) and Record Field Exchange (RFX)」の記事を参照してください。
例
オーバーライドで呼び出しを手動で記述する DoBulkFieldExchange
必要があります。 この例では、データ転送の RFX_Text_Bulk
呼び出しと呼び出しを RFX_Long_Bulk
示します。 これらの呼び出しの前には、CFieldExchange::SetFieldType の呼び出しがあります。 パラメーターの場合は、Bulk RFX 関数ではなく RFX 関数を呼び出す必要があることに注意してください。
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);
}
必要条件
ヘッダー: afxdb.h
DFX_Binary
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間でバイト配列を転送します。
構文
void AFXAPI DFX_Binary(
CDaoFieldExchange* pFX,
LPCTSTR szName,
CByteArray& value,
int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE,
DWORD dwBindOptions = 0);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、CByteArray 型の値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
nPreAllocSize
フレームワークは、この量のメモリを事前に割り当て済みにします。 データが大きい場合、フレームワークは必要に応じてより多くの領域を割り当てられます。 パフォーマンスを向上させるには、このサイズを、再割り当てを防ぐのに十分な大きさの値に設定します。 既定のサイズは AFXDAO で定義されています。AFX_DAO_BINARY_DEFAULT_SIZEとしての H ファイル。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定の AFX_DAO_DISABLE_FIELD_CACHE では、二重バッファリングは使用されません。SetFieldDirty と SetFieldNull を自分で呼び出す必要があります。 もう 1 つの可能な値AFX_DAO_ENABLE_FIELD_CACHEは、二重バッファリングを使用するため、フィールドを ダーティ または Null にマークするために余分な作業を行う必要はありません。 パフォーマンスとメモリの理由から、バイナリ データが比較的小さい場合を除き、この値は避けてください。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、既定ですべてのフィールドに対してデータをダブル バッファリングするかどうかを制御できます。
解説
DAO の型DAO_BYTESとレコードセット内の CByteArray 型の間でデータがマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Bool
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間でブールデータを転送します。
構文
void AFXAPI DFX_Bool(
CDaoFieldExchange* pFX,
LPCTSTR szName,
BOOL& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、BOOL 型の値は、指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_BOOLとレコードセットの BOOL 型の間でデータがマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Byte
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で 1 バイトを転送します。
構文
void AFXAPI DFX_Byte(
CDaoFieldExchange* pFX,
LPCTSTR szName,
BYTE& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送では、BYTE 型の値が指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_BYTESとレコードセットの BYTE 型の間でデータがマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Currency
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で通貨データを転送します。
構文
void AFXAPI DFX_Currency(
CDaoFieldExchange* pFX,
LPCTSTR szName,
COleCurrency& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、この値は COleCurrency 型の指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_CURRENCYとレコードセット内の COleCurrency 型の間でデータがマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_DateTime
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、時刻と日付のデータを転送します。
構文
void AFXAPI DFX_DateTime(
CDaoFieldExchange* pFX,
LPCTSTR szName,
COleDateTime& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 この関数は、COleDateTime オブジェクトへの 参照を 受け取ります。 レコードセットからデータ ソースへの転送の場合、この値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_DATEとレコードセット内の COleDateTime 型の間でデータがマップされます。
Note
COleDateTime
は、 DAO クラスでこの目的のために CTime とTIMESTAMP_STRUCTを置き換えます。 CTime
とTIMESTAMP_STRUCTは、ODBC ベースのデータ アクセス クラスに引き続き使用されます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Double
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、二重浮動小数点データを転送します。
構文
void AFXAPI DFX_Double(
CDaoFieldExchange* pFX,
LPCTSTR szName,
double& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 double
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_R8とレコードセット内の double float 型の間でデータがマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Long
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、長整数データを転送します。
構文
void AFXAPI DFX_Long(
CDaoFieldExchange* pFX,
LPCTSTR szName,
long& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 long
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_I4とレコードセット内の型の間でデータ long
がマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_LongBinary
重要: この関数の代わりにDFX_Binaryを使用することをお勧めします。
構文
void AFXAPI DFX_LongBinary(
CDaoFieldExchange* pFX,
LPCTSTR szName,
CLongBinary& value,
DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE,
DWORD dwBindOptions = 0);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、CLongBinary 型の値は、指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwPreAllocSize
フレームワークは、この量のメモリを事前に割り当て済みにします。 データが大きい場合、フレームワークは必要に応じてより多くの領域を割り当てられます。 パフォーマンスを向上させるには、このサイズを、再割り当てを防ぐのに十分な大きさの値に設定します。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定の AFX_DISABLE_FIELD_CACHE では、二重バッファリングは使用されません。 その他の使用可能な値はAFX_DAO_ENABLE_FIELD_CACHE。 二重バッファリングを使用します。フィールドをダーティまたは Null にマークするために余分な作業を行う必要はありません。 パフォーマンスとメモリの理由から、バイナリ データが比較的小さい場合を除き、この値は避けてください。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DFX_LongBinary
は、MFC ODBC クラスとの互換性のために用意されています。 この関数はDFX_LongBinary
、CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で、クラスCLongBinary
を使用してバイナリ ラージ オブジェクト (BLOB) データを転送します。 DAO の型DAO_BYTESとレコードセット内の CLongBinary 型の間でデータがマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Short
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で短整数データを転送します。
構文
void AFXAPI DFX_Short(
CDaoFieldExchange* pFX,
LPCTSTR szName,
short& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 short
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_I2とレコードセット内の型の間でデータ short
がマップされます。
Note
DFX_Short
は、ODBC ベースのクラスのRFX_Intと同じです。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Single
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間で浮動小数点データを転送します。
構文
void AFXAPI DFX_Single(
CDaoFieldExchange* pFX,
LPCTSTR szName,
float& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、型 float
の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 あなたは自分自身と呼び出 SetFieldDirty
す SetFieldNull
必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
DAO の型DAO_R4とレコードセット内の型 float
の間でデータがマップされます。
例
DFX_Textを参照してください。
必要条件
ヘッダー: afxdao.h
DFX_Text
CDaoRecordset オブジェクトのフィールド データ メンバーとデータ ソース上のレコードの列の間でデータを転送CString
します。
構文
void AFXAPI DFX_Text(
CDaoFieldExchange* pFX,
LPCTSTR szName,
CString& value,
int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
パラメーター
Pfx
クラス CDaoFieldExchange のオブジェクトへのポインター。 このオブジェクトには、関数の各呼び出しのコンテキストを定義するための情報が含まれています。
Szname
データ列の名前。
value
指定されたデータ メンバー (転送される値) に格納されている値。 レコードセットからデータ ソースへの転送の場合、CString 型の値は指定されたデータ メンバーから取得されます。 データ ソースからレコードセットへの転送の場合、値は指定されたデータ メンバーに格納されます。
nPreAllocSize
フレームワークは、この量のメモリを事前に割り当て済みにします。 データが大きい場合、フレームワークは必要に応じてより多くの領域を割り当てられます。 パフォーマンスを向上させるには、このサイズを、再割り当てを防ぐのに十分な大きさの値に設定します。
dwBindOptions
MFC のダブル バッファリング メカニズムを利用して、変更されたレコードセット フィールドを検出できるオプション。 既定のAFX_DAO_ENABLE_FIELD_CACHEでは、ダブル バッファリングが使用されます。 その他の使用可能な値はAFX_DAO_DISABLE_FIELD_CACHE。 この値を指定した場合、MFC はこのフィールドにチェックされません。 SetFieldDirty と SetFieldNull を自分で呼び出す必要があります。
Note
CDaoRecordset::m_bCheckCacheForDirtyFields を設定することで、データを既定でダブル バッファーにするかどうかを制御できます。
解説
データは DAO の型DAO_CHAR (または、シンボル_UNICODEが定義されている場合はDAO_WCHAR) とレコードセットの CString 型の間でマップされます。 n
例
この例では、次のいくつかの呼び出しを DFX_Text
示します。 CDaoFieldExchange::SetFieldType の 2 つの呼び出しにも注意してください。 最初の呼び出しとその DFX 呼び出しを記述するSetFieldType
必要があります。 2 番目の呼び出しとそれに関連付けられている DFX 呼び出しは、通常、クラスを生成したコード ウィザードによって記述されます。
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);
}
必要条件
ヘッダー: afxdao.h
関連項目
マクロとグローバル
CRecordset::DoFieldExchange
CRecordset::D oBulkFieldExchange
CDaoRecordset::D oFieldExchange