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 值将存储,则对应的数据项包含一个空值。 有关详细信息,请参阅《ODBC SDK Programmer's Reference 的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);
}
要求
标头: afxdb.h