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. Эта длина NULL исключает символ завершения. Обратите внимание, что значение SQL_NULL_DATA будет храниться, если соответствующий элемент данных содержит значение NULL. Дополнительные сведения см. в разделе функцию интерфейса API ODBC SQLBindCol в справочнике программиста ODBC SDK.nMaxLength
Максимально допустимые длина значений, хранящихся в указанном массиве. prgStrVals, включая символ NULL завершения. Чтобы убедиться, что данные не будут усечены, передайте значение достаточно большое, чтобы вместить максимальный элемент данных ожидалось.
Заметки
Столбец источника данных может иметь тип ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL или SQL_NUMERIC. Набор записей должен определять элемент поля данных типа LPSTR.
При инициализации prgStrVals и prgLengths значение NULL, то они указывают на массивы будут выделены автоматически с размерами не размеру набора строк.
Примечание
Блочный обмен полей записей только передает данные из источника данных в объект набора записей.Чтобы сделать этот набор записей обновляемый необходимо использовать функцию интерфейса API ODBC 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