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_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);
}

要求

Header: 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宏和Globals