RFX_Text_Bulk
Přenáší více řádků znaková data ze sloupce zdroj dat ODBC na odpovídající 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 každé volání funkce.Další informace naleznete v článku Výměna pole záznamu: Jak funguje RFX.szName
Název datového sloupce.prgStrVals
Ukazatel na pole LPSTR hodnoty.Toto pole bude ukládat data převést ze zdroje dat do sady záznamů.Všimněte si, že v aktuální verzi rozhraní ODBC, nelze tyto hodnoty Unicode.prgLengths
Ukazatel na pole dlouhých celých čísel.Toto pole bude ukládat délka v bajtech všechny hodnoty v poli, na kterou odkazuje prgStrVals.Tato délka vylučuje znak ukončení hodnotu null.Všimněte si, že hodnota SQL_NULL_DATA budou uloženy, pokud odpovídající položka dat obsahuje hodnotu Null.Další informace naleznete v tématu funkce rozhraní ODBC API SQLBindCol v ODBC SDK Programmer's Reference.nMaxLength
Maximální povolená délka hodnot uložených v poli, na kterou odkazuje prgStrVals, včetně znaku ukončení hodnotu null.Chcete-li zajistit, že data nebudou zkráceny, předáte hodnotu dostatečně velká k pokrytí největší datové položky, které očekáváte.
Poznámky
Zdrojový sloupec dat může mít ODBC typ SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL, nebo SQL_NUMERIC.Definovat sady záznamů pole datových členů typu LPSTR.
Pokud můžete inicializovat prgStrVals a prgLengths k NULL, pak pole odkazují bude přiděleno automaticky, jejichž velikost se rovná velikosti sady řádků.
[!POZNÁMKA]
Hromadná výměna pole záznamu pouze přenáší data ze zdroje dat do objektu sady záznamů.Chcete-li vaše sada záznamů aktualizovatelná, musíte použít funkci rozhraní ODBC API SQLSetPos.
Další informace naleznete v článcích sady záznamů: Fetching Records in Bulk (ODBC) a Výměna pole záznamu (RFX).
Příklad
Musíte ručně napsat volání vaší DoBulkFieldExchange přepsat.Tento příklad ukazuje volání RFX_Text_Bulk, a také volání RFX_Long_Bulk, pro přenos dat.Tyto hovory jsou před voláním CFieldExchange::SetFieldType.Všimněte si, že pro parametry, je třeba volat funkce RFX místo funkce hromadné výměny pole záznamů.
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
Soubor hlaviček: afxdb.h