Поделиться через


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 эти значения не могут быть в юникоде.

  • prgLengths
    Указатель на массив длинных целых чисел.Этот массив будет храниться длина в байтах каждого значения в массиве, указанному в prgStrVals.Эта длина исключает нулевой символ завершения.Обратите внимание, что значение SQL_NULL_DATA будет храниться если соответствующий элемент данных содержит значение NULL.Дополнительные сведения см. в разделе функции API ODBC SQLBindCol справочника по программированию ODBC SDK.

  • nMaxLength
    Максимально допустимая длина значений, хранящихся в массиве, указанному в prgStrVals, включая нулевой символ завершения.Чтобы гарантировать, что данные не будут усечены, передайте значение достаточно большое, чтобы обеспечить самый крупный элемент данных ожидается.

Заметки

Столбец источника данных может быть типом ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL или SQL_NUMERIC.Набор записей должен определять элемент полей данных типа LPSTR.

При инициализации prgStrVals и prgLengths к NULL, то они указывают на массивы, будут выбраны автоматически с размерами равными к размеру набора строк.

ПримечаниеПримечание

Обмен полями записей bulk возвращаются только данные из источника данных в объект набора записей.Чтобы сделать набор записей обновляемым, необходимо использовать функцию API SQLSetPos ODBC.

Дополнительные сведения см. в разделе статьи Набор записей. Пакетная выборка строк (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