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 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