RFX_Text_Bulk
Přenese více řádků znaková data ze sloupce zdroj dat ODBC do odpovídajícího pole v CRecordset-odvozené objekt.
void RFX_Text_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
LPSTR* prgStrVals,
long** prgLengths,
int nMaxLength
);
Parametry
pFX
Určuje ukazatel na objekt CFieldExchange.Tento objekt obsahuje informace, které definují kontext pro volání funkce.Další informace naleznete v článku Exchange pole záznamu: Jak funguje RFX.szName
Název datového sloupce.prgStrVals
Ukazatel na pole LPSTR hodnoty.Toto pole bude ukládat data ze zdroje dat převést na sadu záznamů.Všimněte si, že v aktuální verzi ODBC nelze tyto hodnoty Unicode.prgLengths
Ukazatel na pole dlouhých celých čísel.Toto pole bude ukládat délka v bajtech každé hodnoty v poli odkazuje prgStrVals.Tato délka vylučuje znak ukončení hodnotu null.Všimněte si, že hodnota SQL_NULL_DATA bude uložen odpovídající položka data obsahuje hodnotu Null.Další podrobnosti naleznete v části funkce rozhraní API ODBC SQLBindCol v ODBC SDK Programmer's Reference.nMaxLength
Maximální povolená délka hodnoty uložené v poli odkazuje prgStrVals, včetně znaku pro ukončení hodnotu null.Pro zajištění dat bude zkrácen předáte hodnotu dostatečně velké pro uchování dat největší položky očekáváte.
Poznámky
Sloupec zdroj dat může mít typ ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL, nebo SQL_NUMERIC.Sada záznamů je nutné definovat datový člen pole typu LPSTR.
Pokud můžete inicializovat prgStrVals a prgLengths na NULL, pak pole odkazují bude přiděleno automaticky, s velikostí rovná velikosti řádků.
[!POZNÁMKA]
Hromadné výměny pole záznamu pouze přenáší data ze zdroje dat do objektu recordset.Chcete-li do sady záznamů aktualizovatelný, musíte použít funkci rozhraní API ODBC SQLSetPos.
Další informace naleznete v článcích záznamů: načítání záznamů hromadné (ODBC) a Exchange pole v záznamu (RFX).
Příklad
Volání musí zapsat ručně vaší DoBulkFieldExchange potlačit.Tento příklad ukazuje volání RFX_Text_Bulk, jakož i volání RFX_Long_Bulk, pro přenos dat.Tyto hovory jsou předcházet volání CFieldExchange::SetFieldType.Všimněte si, že pro parametry, musí volat funkce RFX namísto funkce hromadné 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);
}
Požadavky
Záhlaví: afxdb.h