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 DoFieldExchange
DoBulkFieldExchange
Funkce DFX jsou velmi podobné funkcím RFX.
Funkce RFX (ODBC)
Název | 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)
Název | 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)
Název | 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 double
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_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 int
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_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 long
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_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 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.
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 float
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_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 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.
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 SQLSetPos
rozhraní 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 SQLSetPos
rozhraní 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 SQLSetPos
rozhraní 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 SQLSetPos
rozhraní 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 SQLSetPos
rozhraní 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 int
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_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 SQLSetPos
rozhraní 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 SQLSetPos
rozhraní 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 SQLSetPos
rozhraní 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:
COleDateTime
nahrazuje 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 double
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_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 long
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_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 short
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_I2 v daO a typem short
v sadě záznamů.
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 float
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_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