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