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
長整数型 (long) の配列へのポインター。 この配列には、prgStrVals で指定された配列内のそれぞれの値の長さが、バイト単位で保存されます。 この長さには、終端の NULL 文字は含まれません。 対応するデータ アイテムの値が Null の場合、SQL_NULL_DATA の値が格納されます。 詳細については、『ODBC SDK Programmer's Reference』の「ODBC API Functions」の「SQLBindCol」を参照してください。nMaxLength
prgStrVals によって指定された配列に保存されている値の、最大長です。終端の NULL 文字を含みます。 データが切り捨てられないように、最大のデータ アイテムを格納するのに十分大きな値を指定してください。
解説
データ ソース列は、SQL_LONGVARCHAR、SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL、または SQL_NUMERIC のいずれかの ODBC 型です。 レコードセットでは、LPSTR へのポインター型のフィールド データ メンバーを定義する必要があります。
prgStrVals と prgLengths を NULL で初期化した場合は、行セットのサイズと等しいサイズの配列が、自動的に割り当てられます。
注意
バルク レコード フィールド エクスチェンジでは、データ ソースからレコードセット オブジェクトにデータが転送されるだけです。 レコードセットを更新可能にするには、ODBC API の関数 SQLSetPos を使用します。
詳細についてを参照してくださいレコード セット:一括 (ODBC) 内のレコードをフェッチ と のレコード フィールド エクス (チェンジ 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