RFX_Text_Bulk
ODBC データ ソースの列から 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 Programmer's Reference "*ODBC API 関数 SQLBindCol を参照してください。nMaxLength
配列に格納されたの null 終端文字を含める prgStrValsして、値の最大許容長は、指す。データが切捨てられないことを確認するには、予想される最大データ項目を格納するのに十分な大きさの値を渡します。
解説
データ ソースの列は SQL_LONGVARCHAR、 SQL_CHAR、 SQL_VARCHAR、 SQL_DECIMAL、または SQL_NUMERICの ODBC の型を持つことができます。は、レコードセット フィールド データ メンバーの型 LPSTRを定義する必要があります。
NULLに prgStrVals と prgLengths 初期化する場合は、を指す配列は行セット サイズと等しいサイズと、自動的に割り当てられます。
[!メモ]
バルク レコード フィールド エクスチェンジは、データ ソースからのみレコードセット オブジェクトにデータを転送します。レコードセットを更新するには、 ODBC API 関数 SQLSetPosを使用します。
詳細については、技術情報 レコードセット: 一括フェッチします (ODBC)のレコードを と レコード フィールド エクスチェンジ (RFX)を参照してください。
使用例
手動で DoBulkFieldExchange のオーバーライドの呼び出しを記述します。この例では RFX_Text_Bulkに呼び出し、 RFX_Long_Bulkのデータ転送の呼び出しを、次に示します。これらの呼び出しは CFieldExchange::SetFieldTypeへの呼び出しが付きます。パラメーターを、一括 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);
}
必要条件
Header: afxdb.h