Sdílet prostřednictvím


Funkce výměny polí v záznamu

Toto téma obsahuje seznam funkcí RFX (Record Field Exchange, Bulk RFX a DFX) sloužících k automatizaci přenosu dat mezi objektem sady záznamů a jeho zdrojem dat a k provádění dalších operací s daty.

Pokud používáte třídy založené na rozhraní ODBC a implementovali jste hromadné načítání řádků, je nutné ručně přepsat DoBulkFieldExchange členovou funkci CRecordset voláním hromadných funkcí RFX pro každý datový člen odpovídající sloupci zdroje dat.

Pokud jste neimplementovali hromadné načítání řádků do tříd založených na rozhraní ODBC nebo pokud používáte třídy založené na jazyce DAO (zastaralé), pak ClassWizard přepíše DoFieldExchange členskou funkci CRecordset nebo CDaoRecordset zavolá funkce RFX (pro třídy ODBC) nebo funkce DFX (pro třídy DAO) pro každý datový člen pole v sadě záznamů.

Funkce výměny polí záznamu přenášejí data pokaždé, když rozhraní volá DoFieldExchange nebo DoBulkFieldExchange. Každá funkce přenáší konkrétní datový typ.

Další informace o tom, jak se tyto funkce používají, naleznete v článcích Záznam Pole Exchange: Jak RFX funguje (ODBC). Další informace o hromadném načítání řádků naleznete v článku Sada záznamů: Načítání záznamů hromadně (ODBC).

U sloupců dat, které dynamicky svážete, můžete také volat funkce RFX nebo DFX sami, jak je vysvětleno v sadě záznamů: Dynamické vazby datových sloupců (ODBC). Kromě toho můžete napsat vlastní rutiny RFX nebo DFX, jak je vysvětleno v technické poznámce 43 (pro ODBC) a technické poznámce 53 (pro DAO).

Příklad funkcí RFX a BulkRFch rfx_text_bulk RFX_Text_Bulk RFX_Text ch DoFieldExchangeDoBulkFieldExchange Funkce DFX jsou velmi podobné funkcím RFX.

Funkce RFX (ODBC)

Jméno popis
RFX_Binary Přenese pole bajtů typu CByteArray.
RFX_Bool Přenáší logická data.
RFX_Byte Přenáší jeden bajt dat.
RFX_Date Přenáší data a čas pomocí jazyka CTime nebo TIMESTAMP_STRUCT.
RFX_Double Přenese data s dvojitou přesností na plovoucí desetinnou čárku.
RFX_Int Přenáší celočíselná data.
RFX_Long Přenáší dlouhá celočíselná data.
RFX_LongBinary Přenáší binární velké objekty (BLOB) data s objektem CLongBinary třídy.
RFX_Single Přenáší plovoucí data.
RFX_Text Přenáší řetězcová data.

Hromadné funkce RFX (ODBC)

Jméno popis
RFX_Binary_Bulk Přenáší pole bajtů dat.
RFX_Bool_Bulk Přenáší pole logických dat.
RFX_Byte_Bulk Přenáší pole s jedním bajtem.
RFX_Date_Bulk Přenáší pole dat typu TIMESTAMP_STRUCT.
RFX_Double_Bulk Přenáší pole s dvojitou přesností a daty s plovoucí desetinnou čárkou.
RFX_Int_Bulk Přenáší pole celočíselná data.
RFX_Long_Bulk Přenáší pole dlouhých celočíselná data.
RFX_Single_Bulk Přenáší pole dat s plovoucí desetinou čárkou.
RFX_Text_Bulk Přenáší pole dat typu LPSTR.

Funkce DFX (DAO)

Jméno popis
DFX_Binary Přenese pole bajtů typu CByteArray.
DFX_Bool Přenáší logická data.
DFX_Byte Přenáší jeden bajt dat.
DFX_Currency Přenáší data měny typu COleCurrency.
DFX_DateTime Přenáší data času a data typu COleDateTime.
DFX_Double Přenese data s dvojitou přesností na plovoucí desetinnou čárku.
DFX_Long Přenáší dlouhá celočíselná data.
DFX_LongBinary Přenáší data binárního velkého objektu (BLOB) s objektem CLongBinary třídy. Pro rozhraní DAO se doporučuje místo toho použít DFX_Binary .
DFX_Short Přenáší krátká celočíselná data.
DFX_Single Přenáší plovoucí data.
DFX_Text Přenáší řetězcová data.

=============================================

RFX_Binary

Přenáší pole bajtů mezi datovými členy CRecordset pole objektu a sloupci záznamu o zdroji dat typu ODBC SQL_BINARY, SQL_VARBINARY nebo SQL_LONGVARBINARY.

Syntaxe

void RFX_Binary(
   CFieldExchange* pFX,
   const char* szName,
   CByteArray& value,
   int nMaxLength = 255);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu CByteArray převzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

nMaxLength
Maximální povolená délka přenášeného řetězce nebo pole. Výchozí hodnota nMaxLength je 255. Právní hodnoty jsou 1 až INT_MAX. Architektura přidělí toto množství místa pro data. Nejlepšího výkonu dosáhnete tak, že předáte hodnotu dostatečně velkou, aby vyhovovala největší očekávané datové položce.

Poznámky

Data ve zdroji dat těchto typů se mapují na typ v sadě záznamů a z nich CByteArray .

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Bool

Přenáší logická data mezi datovými členy pole objektu CRecordset a sloupci záznamu ve zdroji dat typu ODBC SQL_BIT.

Syntaxe

void RFX_Bool(
   CFieldExchange* pFX,
   const char* szName,
   BOOL& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu BOOL převzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Byte

Přenáší jednotlivé bajty mezi datovými členy CRecordset pole objektu a sloupci záznamu ve zdroji dat typu ODBC SQL_TINYINT.

Syntaxe

void RFX_Byte(
   CFieldExchange* pFX,
   const char* szName,
   BYTE& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat se hodnota typu BYTE přebírá ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Date

Přenáší CTime nebo TIMESTAMP_STRUCT data mezi datovými členy CRecordset pole objektu a sloupci záznamu o zdroji dat typu ODBC SQL_DATE, SQL_TIME nebo SQL_TIMESTAMP.

Syntaxe

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   CTime& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   TIMESTAMP_STRUCT& value);

void RFX_Date(
   CFieldExchange* pFX,
   const char* szName,
   COleDateTime& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu; hodnota, která se má přenést. Různé verze funkce pro hodnotu přebírají různé datové typy:

První verze funkce přebírá odkaz na objekt CTime . Pro přenos ze sady záznamů do zdroje dat se tato hodnota přebírá ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Druhá verze funkce přebírá odkaz na TIMESTAMP_STRUCT strukturu. Tuto strukturu musíte nastavit sami před voláním. Pro tuto verzi není dostupná podpora výměny dat dialogových oken (DDX) ani podpora průvodce kódem. Třetí verze funkce funguje podobně jako první verze s tím rozdílem, že přebírá odkaz na objekt COleDateTime .

Poznámky

Verze CTime funkce představuje režii určitého zprostředkujícího zpracování a má poněkud omezený rozsah. Pokud zjistíte, že některý z těchto faktorů je příliš omezený, použijte druhou verzi funkce. Všimněte si ale, že chybí průvodce kódem a podpora DDX a požadavek, že jste strukturu nastavili sami.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Double

Přenáší dvojitá plovoucí data mezi datovými členy pole objektu CRecordset a sloupci záznamu ve zdroji dat typu ODBC SQL_DOUBLE.

Syntaxe

void RFX_Double(
   CFieldExchange* pFX,
   const char* szName,
   double& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu doublepřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Int

Přenáší celočíselná data mezi datovými členy CRecordset pole objektu a sloupci záznamu ve zdroji dat typu ODBC SQL_SMALLINT.

Syntaxe

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu intpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Long

Přenáší dlouhá celočíselná data mezi datovými členy pole objektu CRecordset a sloupci záznamu ve zdroji dat typu ODBC SQL_INTEGER.

Syntaxe

void RFX_Long(
   CFieldExchange* pFX,
   const char* szName,
   LONG&
value );

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu longpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_LongBinary

Přenáší binární data velkého objektu (BLOB) pomocí třídy CLongBinary mezi datovými členy pole objektu CRecordset a sloupci záznamu o zdroji dat typu ODBC SQL_LONGVARBINARY nebo SQL_LONGVARCHAR.

Syntaxe

void RFX_LongBinary(
   CFieldExchange* pFX,
   const char* szName,
   CLongBinary& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu CLongBinarypřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Single

Přenáší data s plovoucí desetinou čárkou mezi datovými členy CRecordset pole objektu a sloupci záznamu ve zdroji dat typu ODBC SQL_REAL.

Syntaxe

void RFX_Single(
   CFieldExchange* pFX,
   const char* szName,
   float& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu floatpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Text

Přenáší CString data mezi datovými členy pole objektu CRecordset a sloupců záznamu o zdroji dat typu ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL nebo SQL_NUMERIC.

Syntaxe

void RFX_Text(
   CFieldExchange* pFX,
   const char* szName,
   CString& value,
   int nMaxLength = 255,
   int nColumnType = SQL_VARCHAR,
   short nScale = 0);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu CStringpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

nMaxLength
Maximální povolená délka přenášeného řetězce nebo pole. Výchozí hodnota nMaxLength je 255. Právní hodnoty jsou 1 až INT_MAX). Architektura přidělí toto množství místa pro data. Nejlepšího výkonu dosáhnete tak, že předáte hodnotu dostatečně velkou, aby vyhovovala největší očekávané datové položce.

nColumnType
Používá se hlavně pro parametry. Celé číslo označující datový typ parametru. Typ je datový typ ODBC formuláře SQL_XXX.

nŠkálování
Určuje měřítko pro hodnoty typu ODBC SQL_DECIMAL nebo SQL_NUMERIC. NScale je užitečné pouze při nastavování hodnot parametrů. Další informace najdete v tématu "Přesnost, měřítko, délka a velikost zobrazení" v dodatku D reference programátora sady ODBC SDK.

Poznámky

Data ve zdroji dat všech těchto typů se mapují na sadu záznamů a z CString nich.

Příklad

Tento příklad ukazuje několik volání .RFX_Text Všimněte si také dvou volání na CFieldExchange::SetFieldType. U parametrů musíte zapsat volání SetFieldType do a jeho volání RFX. Volání výstupního sloupce a přidružené volání RFX se obvykle zapisují pomocí průvodce kódem.

void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   // Macros such as RFX_Text() and RFX_Int() are dependent on the
   // type of the member variable, not the type of the field in the database.
   // ODBC will try to automatically convert the column value to the requested type
   RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
   RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
   RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
   RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
   RFX_Long(pFX, _T("[BillingID]"), m_BillingID);

   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Param"), m_strParam);
}

Požadavky

Hlavička: afxdb.h

RFX_Binary_Bulk

Přenáší více řádků bajtů dat ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného od CRecordset.

Syntaxe

void RFX_Binary_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths,
   int nMaxLength);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgByteVals
Ukazatel na pole hodnot BYTE. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v matici, na kterou odkazuje prgByteVals. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

nMaxLength
Maximální povolená délka hodnot uložených v poli, na které odkazuje prgByteVals. Aby se zajistilo, že data nebudou zkrácena, předejte hodnotu dostatečně velkou, aby se přizpůsobila největší datové položce, kterou očekáváte.

Poznámky

Sloupec zdroje dat může mít typ ODBC SQL_BINARY, SQL_VARBINARY nebo SQL_LONGVARBINARY. Sada záznamů musí definovat datový člen pole ukazatele typu na BYTE.

Pokud inicializujete prgByteVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přiděleny automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

Viz RFX_Text_Bulk.

Požadavky

Hlavička: afxdb.h

RFX_Bool_Bulk

Přenese několik řádků logických dat ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného objektu CRecordset.

Syntaxe

void RFX_Bool_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BOOL** prgBoolVals,
   long** prgLengths);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgBoolVals
Ukazatel na pole hodnot BOOL. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v matici, na kterou odkazuje prgBoolVals. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

Poznámky

Sloupec zdroje dat musí mít typ ODBC SQL_BIT. Sada záznamů musí definovat datový člen pole ukazatele typu na boOL.

Pokud inicializujete prgBoolVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přidělena automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

Viz RFX_Text_Bulk.

Požadavky

Hlavička: afxdb.h

RFX_Byte_Bulk

Přenese více řádků jednoho bajtu ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného z objektu CRecordset.

Syntaxe

void RFX_Byte_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   BYTE** prgByteVals,
   long** prgLengths);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgByteVals
Ukazatel na pole hodnot BYTE. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v matici, na kterou odkazuje prgByteVals. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

Poznámky

Sloupec zdroje dat musí mít typ ODBC SQL_TINYINT. Sada záznamů musí definovat datový člen pole ukazatele typu na BYTE.

Pokud inicializujete prgByteVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přiděleny automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

Viz RFX_Text_Bulk.

Požadavky

Hlavička: afxdb.h

RFX_Date_Bulk

Přenese více řádků TIMESTAMP_STRUCT dat ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného od CRecordset.

Syntaxe

void RFX_Date_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   TIMESTAMP_STRUCT** prgTSVals,
   long** prgLengths);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgTSVals
Ukazatel na pole TIMESTAMP_STRUCT hodnot. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů. Další informace o datovém typu TIMESTAMP_STRUCT naleznete v tématu "Datové typy jazyka C" v dodatku D reference programátora sady ODBC SDK.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v matici, na kterou odkazuje prgTSVals. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

Poznámky

Sloupec zdroje dat může mít typ ODBC SQL_DATE, SQL_TIME nebo SQL_TIMESTAMP. Sada záznamů musí definovat datový člen pole ukazatele typu na TIMESTAMP_STRUCT.

Pokud inicializujete prgTSVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přiděleny automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

Viz RFX_Text_Bulk.

Požadavky

Hlavička: afxdb.h

RFX_Double_Bulk

Přenese více řádků dat s dvojitou přesností a plovoucí desetinnou čárkou ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného od CRecordset..

Syntaxe

void RFX_Double_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   double** prgDblVals,
   long** prgLengths);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgDblVals
Ukazatel na pole double hodnot. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v matici, na kterou odkazuje prgDblVals. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

Poznámky

Sloupec zdroje dat musí mít typ ODBC SQL_DOUBLE. Sada záznamů musí definovat datový člen pole ukazatele typu na double.

Pokud inicializujete prgDblVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přidělena automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

Viz RFX_Text_Bulk.

Požadavky

Hlavička: afxdb.h

RFX_Int_Bulk

Přenáší celočíselná data mezi datovými členy CRecordset pole objektu a sloupci záznamu ve zdroji dat typu ODBC SQL_SMALLINT.

Syntaxe

void RFX_Int(
   CFieldExchange* pFX,
   const char* szName,
   int& value);

Parametry

Pfx
Ukazatel na objekt třídy CFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace o operacích, které CFieldExchange může objekt zadat, naleznete v článku Záznam Pole Exchange: Jak RFX funguje.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu intpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

Příklad

Viz RFX_Text.

Požadavky

Hlavička: afxdb.h

RFX_Long_Bulk

Přenese více řádků dlouhých celočíselná data ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného od CRecordset.

Syntaxe

void RFX_Long_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   long** prgLongVals,
   long** prgLengths);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgLongVals
Ukazatel na pole dlouhých celých čísel. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v matici, na kterou odkazuje prgLongVals. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

Poznámky

Sloupec zdroje dat musí mít typ ODBC SQL_INTEGER. Sada záznamů musí definovat datový člen pole ukazatele typu na long.

Pokud inicializujete prgLongVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přidělena automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

Viz RFX_Text_Bulk.

Požadavky

Hlavička: afxdb.h

RFX_Single_Bulk

Přenese více řádků dat s plovoucí desetinou čárkou ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného od CRecordset.

Syntaxe

void RFX_Single_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   float** prgFltVals,
   long** prgLengths);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgFltVals
Ukazatel na pole float hodnot. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v poli, na kterou odkazuje prgFltVals. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

Poznámky

Sloupec zdroje dat musí mít typ ODBC SQL_REAL. Sada záznamů musí definovat datový člen pole ukazatele typu na float.

Pokud inicializujete prgFltVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přiděleny automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

Viz RFX_Text_Bulk.

Požadavky

Hlavička: afxdb.h

RFX_Text_Bulk

Přenese několik řádků znakových dat ze sloupce zdroje dat ODBC do odpovídajícího pole v objektu odvozeného objektu CRecordset.

Syntaxe

void RFX_Text_Bulk(
   CFieldExchange* pFX,
   LPCTSTR szName,
   LPSTR* prgStrVals,
   long** prgLengths,
   int nMaxLength);

Parametry

Pfx
Ukazatel na objekt CFieldExchange . Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce. Další informace najdete v článku Výměna polí záznamu: Jak RFX funguje.

szName
Název datového sloupce.

prgStrVals
Ukazatel na pole hodnot LPSTR. Toto pole uloží data, která se mají přenést ze zdroje dat do sady záznamů. Všimněte si, že u aktuální verze rozhraní ODBC nemohou být tyto hodnoty Unicode.

prgLengths
Ukazatel na pole dlouhých celých čísel. Toto pole uloží délku v bajtech každé hodnoty v poli, na kterou odkazuje prgStrVals. Tato délka vylučuje znak ukončení null. Všimněte si, že hodnota SQL_NULL_DATA bude uložena, pokud odpovídající datová položka obsahuje hodnotu Null. Další podrobnosti najdete ve funkci SQLBindCol rozhraní ODBC API v referenčních informacích programátora sady ODBC SDK.

nMaxLength
Maximální povolená délka hodnot uložených v poli, na které odkazuje prgStrVals, včetně znaku ukončení null. Aby se zajistilo, že data nebudou zkrácena, předejte hodnotu dostatečně velkou, aby se přizpůsobila největší datové položce, kterou očekáváte.

Poznámky

Sloupec zdroje dat může mít typ ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL nebo SQL_NUMERIC. Sada záznamů musí definovat datový člen pole typu LPSTR.

Pokud inicializujete prgStrVals a prgLengths na hodnotu NULL, budou pole, na která odkazují, přidělena automaticky, s velikostí rovnající se velikosti sady řádků.

Poznámka

Hromadná výměna polí záznamu přenáší pouze data ze zdroje dat do objektu sady záznamů. Chcete-li aktualizovat sadu záznamů, musíte použít funkci SQLSetPosrozhraní ODBC API .

Další informace najdete v článcích Sada záznamů: Načítání záznamů hromadně (ODBC) a Výměny polí záznamů (RFX).

Příklad

V přepsání je nutné ručně psát volání DoBulkFieldExchange . Tento příklad ukazuje volání RFX_Text_Bulk, stejně jako volání RFX_Long_Bulk, pro přenos dat. Těmto voláním předchází volání CFieldExchange::SetFieldType. Všimněte si, že u parametrů je nutné místo funkcí Bulk RFX volat funkce 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

Hlavička: afxdb.h

DFX_Binary

Přenáší pole bajtů mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Binary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CByteArray& value,
   int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu CByteArray převzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

nPreAllocSize
Architektura tuto velikost paměti předem nepřiděluje. Pokud jsou vaše data větší, architektura podle potřeby přidělí více místa. Pokud chcete dosáhnout lepšího výkonu, nastavte tuto velikost na hodnotu dostatečně velkou, aby se zabránilo relokaci. Výchozí velikost je definována v AFXDAO. Soubor H jako AFX_DAO_BINARY_DEFAULT_SIZE.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_DISABLE_FIELD_CACHE nepoužívá dvojité ukládání do vyrovnávací paměti a musíte volat SetFieldDirty a SetFieldNull sami. Druhá možná hodnota, AFX_DAO_ENABLE_FIELD_CACHE, používá dvojité ukládání do vyrovnávací paměti a nemusíte dělat další práci pro označení polí zašpiněná nebo Null. Z důvodů výkonu a paměti se této hodnotě vyhněte, pokud nejsou binární data relativně malá.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, zda jsou data ve výchozím nastavení pro všechna pole uložena do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_BYTES v daO a typem CByteArray v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Bool

Přenáší logická data mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Bool(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BOOL& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu BOOL převzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_BOOL v daO a typem BOOL v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Byte

Přenáší jednotlivé bajty mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Byte(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   BYTE& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat se hodnota typu BYTE přebírá ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_BYTES v jazyce DAO a typem BYTE v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Currency

Přenáší data měny mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Currency(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleCurrency& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat se tato hodnota přebírá ze zadaného datového členu typu COleCurrency. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_CURRENCY v daO a typem COleCurrency v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_DateTime

Přenáší data času a data mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_DateTime(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   COleDateTime& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Funkce přebírá odkaz na objekt COleDateTime . Pro přenos ze sady záznamů do zdroje dat se tato hodnota přebírá ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_DATE v daO a typem COleDateTime v sadě záznamů.

Poznámka

COleDateTimenahrazuje CTime a TIMESTAMP_STRUCT pro tento účel v třídách DAO. CTime a TIMESTAMP_STRUCT se stále používají pro třídy přístupu k datům založeným na rozhraní ODBC.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Double

Přenáší dvojitá plovoucí data mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Double(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   double& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu doublepřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_R8 v daO a typ double float v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Long

Přenáší dlouhá celočíselná data mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Long(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   long& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu longpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_I4 v jazyce DAO a typem long v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_LongBinary

Důležité: Místo této funkce se doporučuje používat DFX_Binary .

Syntaxe

void AFXAPI DFX_LongBinary(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CLongBinary& value,
   DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE,
   DWORD dwBindOptions = 0);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu CLongBinary převzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwPreAllocSize
Architektura tuto velikost paměti předem nepřiděluje. Pokud jsou vaše data větší, architektura podle potřeby přidělí více místa. Pokud chcete dosáhnout lepšího výkonu, nastavte tuto velikost na hodnotu dostatečně velkou, aby se zabránilo relokaci.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DISABLE_FIELD_CACHE nepoužívá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_ENABLE_FIELD_CACHE. Používá dvojité ukládání do vyrovnávací paměti a nemusíte dělat další práci pro označení polí zašpiněná nebo Null. Z důvodů výkonu a paměti se této hodnotě vyhněte, pokud nejsou binární data relativně malá.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

DFX_LongBinary je poskytována z důvodu kompatibility s třídami MFC ODBC. Funkce DFX_LongBinary přenáší binární data velkých objektů (BLOB) pomocí třídy CLongBinary mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat. Data se mapují mezi typem DAO_BYTES v daO a typem CLongBinary v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Short

Přenáší krátká celočíselná data mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Short(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   short& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu shortpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_I2 v daO a typem short v sadě záznamů.

Poznámka

DFX_Shortje ekvivalentní RFX_Int pro třídy založené na rozhraní ODBC.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Single

Přenáší data s plovoucí desetinou čárkou mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Single(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   float& value,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu floatpřevzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte zavolat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi typem DAO_R4 v daO a typem float v sadě záznamů.

Příklad

Viz DFX_Text.

Požadavky

Hlavička: afxdao.h

DFX_Text

Přenáší CString data mezi datovými členy pole objektu CDaoRecordset a sloupci záznamu ve zdroji dat.

Syntaxe

void AFXAPI DFX_Text(
   CDaoFieldExchange* pFX,
   LPCTSTR szName,
   CString& value,
   int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE,
   DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);

Parametry

Pfx
Ukazatel na objekt třídy CDaoFieldExchange. Tento objekt obsahuje informace pro definování kontextu pro každé volání funkce.

szName
Název datového sloupce.

value
Hodnota uložená v určeném datovém členu – hodnota, která se má přenést. Pro přenos ze sady záznamů do zdroje dat je hodnota typu CString převzata ze zadaného datového členu. Pro přenos ze zdroje dat do sady záznamů je hodnota uložena v zadaném datovém členu.

nPreAllocSize
Architektura tuto velikost paměti předem nepřiděluje. Pokud jsou vaše data větší, architektura podle potřeby přidělí více místa. Pokud chcete dosáhnout lepšího výkonu, nastavte tuto velikost na hodnotu dostatečně velkou, aby se zabránilo relokaci.

dwBindOptions
Možnost, která umožňuje využít mechanismus dvojité vyrovnávací paměti MFC pro detekci polí sady záznamů, které se změnily. Výchozí AFX_DAO_ENABLE_FIELD_CACHE používá dvojité ukládání do vyrovnávací paměti. Druhá možná hodnota je AFX_DAO_DISABLE_FIELD_CACHE. Pokud zadáte tuto hodnotu, prostředí MFC nekontroluje toto pole. Musíte volat SetFieldDirty a SetFieldNull sami.

Poznámka

Nastavením CDaoRecordset::m_bCheckCacheForDirtyFields můžete určit, jestli se data ve výchozím nastavení po vyrovnávací paměti posouvují do vyrovnávací paměti.

Poznámky

Data se mapují mezi DAO_CHAR typu v DAO (nebo pokud je definován symbol _UNICODE, DAO_WCHAR) a do sady záznamů zadejte CString . n

Příklad

Tento příklad ukazuje několik volání .DFX_Text Všimněte si také dvou volání CDaoFieldExchange::SetFieldType. Musíte napsat první volání SetFieldType a jeho volání DFX . Druhé volání a jeho přidružené volání DFX jsou obvykle napsány průvodcem kódu, který vygeneroval třídu.

void CCustSet::DoFieldExchange(CDaoFieldExchange* pFX)
{
   pFX->SetFieldType(CDaoFieldExchange::param);
   DFX_Text(pFX, _T("Param"), m_strParam);
   pFX->SetFieldType(CDaoFieldExchange::outputColumn);
   DFX_Short(pFX, _T("EmployeeID"), m_EmployeeID);
   DFX_Text(pFX, _T("LastName"), m_LastName);
   DFX_Short(pFX, _T("Age"), m_Age);
   DFX_DateTime(pFX, _T("hire_date"), m_hire_date);
   DFX_DateTime(pFX, _T("termination_date"), m_termination_date);

   CDaoRecordset::DoFieldExchange(pFX);
}

Požadavky

Hlavička: afxdao.h

Viz také

Makra a globální objekty
CRecordset::D oFieldExchange
CRecordset::D oBulkFieldExchange
CDaoRecordset::D oFieldExchange