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 結尾字元。 請注意,值 SQL_NULL_DATA 如果您對應資料的項目會包含 Null 值會儲存。 如需詳細資訊,請參閱 ODBC API 函式 SQLBindCol 在 ODBC SDK 程式設計人員參考。nMaxLength
允許的最大的長度值儲存在陣列中所指的prgStrVals,其中包括的 null 結尾字元。 若要確保資料將不會被截斷,傳遞一個大到足以容納您所預期的最大資料項目的值。
備註
資料來源資料行可以有一個的 ODBC 型別 SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL,或 SQL_NUMERIC。 資料錄集必須定義型別的欄位資料成員 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);
}
需求
標頭: afxdb.h