RFX_Text_Bulk
字元資料傳輸多行從 ODBC 資料來源的資料行至對應的陣列在 CRecordset衍生物件的。
void RFX_Text_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
LPSTR* prgStrVals,
long** prgLengths,
int nMaxLength
);
參數
pFX
CFieldExchange 物件的指標。 這個物件包含資訊定義函式的每個呼叫的內容。 如需詳細資訊,請參閱文件 資料錄欄位交換:RFX 的運作方式。szName
資料行的名稱。prgStrVals
out 的指標 LPSTR 值。 這個陣列會儲存資料來源中要傳送的資料至資料錄集。 請注意與 ODBC 版本中,這些值不可為 Unicode。prgLengths
陣列的指標長度的整數。 這個陣列在位元組陣列中的每個值會存放長度所指向的 prgStrVals。 此長度排除 null 結尾字元。 請注意將儲存值 SQL_NULL_DATA ,如果對應的資料項目包含 Null 值。 如需詳細資訊,請參閱《 ODBC SDK 程式設計人員參考》的ODBC API 函式 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的呼叫之後。 請注意參數,您必須呼叫 RFX 函式代替 Bulk 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