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

请参见

参考

RFX_Binary_Bulk

RFX_Bool_Bulk

RFX_Byte_Bulk

RFX_Date_Bulk

RFX_Double_Bulk

RFX_Int_Bulk

RFX_Long_Bulk

RFX_Single_Bulk

CFieldExchange::SetFieldType

概念

MFC 宏和全局函数