Udostępnij za pośrednictwem


Funkcje wymiany pól rekordów

W tym temacie wymieniono funkcje Wymiany pól rekordów (RFX, Bulk RFX i DFX) używane do automatyzowania transferu danych między obiektem zestawu rekordów a jego źródłem danych oraz wykonywania innych operacji na danych.

Jeśli używasz klas opartych na odBC i zaimplementowano pobieranie wierszy zbiorczych, należy ręcznie zastąpić DoBulkFieldExchange funkcję CRecordset składową klasy , wywołując funkcje Bulk RFX dla każdego elementu członkowskiego odpowiadającego kolumnie źródła danych.

Jeśli nie zaimplementowano zbiorczego pobierania wierszy w klasach opartych na odBC lub jeśli używasz klas opartych na dao (przestarzałe), klasa ClassWizard zastąpi DoFieldExchange funkcję CRecordset CDaoRecordset składową lub wywołując funkcje RFX (dla klas ODBC) lub funkcje DFX (dla klas DAO) dla każdego elementu członkowskiego danych pola w zestawie rekordów.

Funkcje wymiany rekordów przesyłają dane za każdym razem, gdy platforma wywołuje DoFieldExchange metodę lub DoBulkFieldExchange. Każda funkcja przesyła określony typ danych.

Aby uzyskać więcej informacji na temat sposobu użycia tych funkcji, zobacz artykuły Wymiana pól rekordów: Jak działa RFX (ODBC). Aby uzyskać więcej informacji na temat zbiorczego pobierania wierszy, zobacz artykuł Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC).

W przypadku kolumn danych, które są powiązane dynamicznie, można również wywołać funkcje RFX lub DFX samodzielnie, zgodnie z opisem w artykułach Zestaw rekordów: kolumny danych dynamicznie wiązania (ODBC). Ponadto można napisać własne niestandardowe procedury RFX lub DFX, zgodnie z opisem w uwagach technicznych 43 (dla ODBC) i Technical Note 53 (for DAO).

Aby zapoznać się z przykładem funkcji RFX i Bulk RFX wyświetlanych w DoFieldExchange funkcjach i DoBulkFieldExchange , zobacz RFX_Text i [RFX_Text_Bulk]#rfx_text_bulk). Funkcje DFX są bardzo podobne do funkcji RFX.

Funkcje RFX (ODBC)

Nazwa/nazwisko opis
RFX_Binary Transferuje tablice bajtów typu CByteArray.
RFX_Bool Przesyła dane logiczne.
RFX_Byte Transferuje pojedynczy bajt danych.
RFX_Date Przesyła dane o godzinie i dacie przy użyciu języka CTime lub TIMESTAMP_STRUCT.
RFX_Double Transferuje dane zmiennoprzecinkowe o podwójnej precyzji.
RFX_Int Transferuje dane całkowite.
RFX_Long Transferuje długie dane całkowite.
RFX_LongBinary Transferuje dane binarne dużego obiektu (BLOB) z obiektem klasy CLongBinary .
RFX_Single Przesyła dane zmiennoprzecinkowe.
RFX_Text Przesyła dane ciągu.

Zbiorcze funkcje RFX (ODBC)

Nazwa/nazwisko opis
RFX_Binary_Bulk Transferuje tablice danych bajtów.
RFX_Bool_Bulk Przesyła tablice danych logicznych.
RFX_Byte_Bulk Transferuje tablice pojedynczych bajtów.
RFX_Date_Bulk Przesyła tablice danych typu TIMESTAMP_STRUCT.
RFX_Double_Bulk Przesyła tablice danych o podwójnej precyzji i zmiennoprzecinku.
RFX_Int_Bulk Transferuje tablice danych całkowitych.
RFX_Long_Bulk Transferuje tablice długich danych całkowitych.
RFX_Single_Bulk Transferuje tablice danych zmiennoprzecinkowych.
RFX_Text_Bulk Przesyła tablice danych typu LPSTR.

Funkcje DFX (DAO)

Nazwa/nazwisko opis
DFX_Binary Transferuje tablice bajtów typu CByteArray.
DFX_Bool Przesyła dane logiczne.
DFX_Byte Transferuje pojedynczy bajt danych.
DFX_Currency Przesyła dane waluty typu COleCurrency.
DFX_DateTime Przesyła dane o godzinie i dacie typu COleDateTime.
DFX_Double Transferuje dane zmiennoprzecinkowe o podwójnej precyzji.
DFX_Long Transferuje długie dane całkowite.
DFX_LongBinary Transferuje dane binarne dużego obiektu (BLOB) z obiektem CLongBinary klasy. W przypadku daO zaleca się użycie DFX_Binary zamiast tego.
DFX_Short Transferuje krótkie dane całkowite.
DFX_Single Przesyła dane zmiennoprzecinkowe.
DFX_Text Przesyła dane ciągu.

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

RFX_Binary

Transferuje tablice bajtów między elementami członkowskimi CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_BINARY, SQL_VARBINARY lub SQL_LONGVARBINARY.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu CByteArray jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

nMaxLength
Maksymalna dozwolona długość przesyłanego ciągu lub tablicy. Wartość domyślna nMaxLength to 255. Wartości prawne to od 1 do INT_MAX. Platforma przydziela tę ilość miejsca dla danych. Aby uzyskać najlepszą wydajność, przekaż wystarczająco dużą wartość, aby pomieścić największy oczekiwany element danych.

Uwagi

Dane w źródle danych tych typów są mapowane na i z typu CByteArray w zestawie rekordów.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Bool

Przesyła dane logiczne między elementami członkowskimi CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_BIT.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu BOOL jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Byte

Transferuje pojedyncze bajty między elementami członkowskimi CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_TINYINT.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu BYTE jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Date

Transferuje CTime lub TIMESTAMP_STRUCT dane między elementami członkowskimi CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_DATE, SQL_TIME lub SQL_TIMESTAMP.

Składnia

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
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie członkowskim danych; wartość, która ma zostać przeniesiona. Różne wersje funkcji przyjmują różne typy danych dla wartości:

Pierwsza wersja funkcji przyjmuje odwołanie do obiektu CTime . W przypadku transferu z zestawu rekordów do źródła danych ta wartość jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Druga wersja funkcji przyjmuje odwołanie do TIMESTAMP_STRUCT struktury. Musisz skonfigurować tę strukturę samodzielnie przed wywołaniem. Obsługa wymiany danych dialogowych (DDX) ani obsługa kreatora kodu nie jest dostępna dla tej wersji. Trzecia wersja funkcji działa podobnie do pierwszej wersji, z tą różnicą, że przyjmuje odwołanie do obiektu COleDateTime .

Uwagi

Wersja CTime funkcji nakłada obciążenie niektórych przetwarzania pośredniego i ma nieco ograniczony zakres. Jeśli znajdziesz jeden z tych czynników zbyt ograniczający, użyj drugiej wersji funkcji. Należy jednak pamiętać o braku kreatora kodu i obsłudze DDX oraz konieczności samodzielnego skonfigurowania struktury.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Double

Transferuje dane podwójne zmiennoprzecinkowe między elementami członkowskimi CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_DOUBLE.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu double, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Int

Transferuje dane całkowite między elementami członkowskimi CRecordset danych pól obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_SMALLINT.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu int, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Long

Transferuje długie dane całkowite między elementami członkowskimi CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_INTEGER.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu long, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_LongBinary

Transferuje dane binarne dużego obiektu (BLOB) przy użyciu klasy CLongBinary między składowych CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_LONGVARBINARY lub SQL_LONGVARCHAR.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu CLongBinary, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Single

Transferuje dane zmiennoprzecinkowe między elementami członkowskimi CRecordset danych pola obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_REAL.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu float, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Text

Transferuje CString dane między elementami członkowskimi CRecordset danych pola obiektu i kolumnami rekordu w źródle danych typu ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL lub SQL_NUMERIC.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu CString, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

nMaxLength
Maksymalna dozwolona długość przesyłanego ciągu lub tablicy. Wartość domyślna nMaxLength to 255. Wartości prawne to od 1 do INT_MAX). Platforma przydziela tę ilość miejsca dla danych. Aby uzyskać najlepszą wydajność, przekaż wystarczająco dużą wartość, aby pomieścić największy oczekiwany element danych.

nColumnType
Używane głównie dla parametrów. Liczba całkowita wskazująca typ danych parametru. Typ jest typem danych ODBC formularza SQL_XXX.

nScale
Określa skalę dla wartości typu ODBC SQL_DECIMAL lub SQL_NUMERIC. Wartość nScale jest przydatna tylko podczas ustawiania wartości parametrów. Aby uzyskać więcej informacji, zobacz temat "Precyzja, skala, długość i rozmiar wyświetlania" w dodatku D w dokumentacji programisty zestawu SDK ODBC.

Uwagi

Dane w źródle danych wszystkich tych typów są mapowane na i z CString zestawu rekordów.

Przykład

W tym przykładzie pokazano kilka wywołań elementu RFX_Text. Zwróć również uwagę na dwa wywołania funkcji CFieldExchange::SetFieldType. W przypadku parametrów należy napisać wywołanie metody SetFieldType i wywołanie RFX. Wywołanie kolumny wyjściowej i skojarzone z nim wywołania RFX są zwykle zapisywane przez kreatora kodu.

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);
}

Wymagania

Nagłówek: afxdb.h

RFX_Binary_Bulk

Przesyła wiele wierszy danych bajtów z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

PrgByteVals
Wskaźnik do tablicy wartości BYTE. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgByteVals. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

nMaxLength
Maksymalna dozwolona długość wartości przechowywanych w tablicy wskazywana przez prgByteVals. Aby upewnić się, że dane nie zostaną obcięte, przekaż wystarczająco dużą wartość, aby pomieścić największy oczekiwany element danych.

Uwagi

Kolumna źródła danych może mieć typ ODBC SQL_BINARY, SQL_VARBINARY lub SQL_LONGVARBINARY. Zestaw rekordów musi zdefiniować element członkowski danych pola typu wskaźnik do typu BYTE.

Jeśli zainicjujesz wartości prgByteVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Zobacz RFX_Text_Bulk.

Wymagania

Nagłówek: afxdb.h

RFX_Bool_Bulk

Przesyła wiele wierszy danych logicznych z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

PrgBoolVals
Wskaźnik do tablicy wartości BOOL. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgBoolVals. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

Uwagi

Kolumna źródła danych musi mieć typ ODBC SQL_BIT. Zestaw rekordów musi zdefiniować składową danych pola wskaźnika typu na wartość BOOL.

Jeśli zainicjujesz wartości prgBoolVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Zobacz RFX_Text_Bulk.

Wymagania

Nagłówek: afxdb.h

RFX_Byte_Bulk

Transferuje wiele wierszy pojedynczych bajtów z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

PrgByteVals
Wskaźnik do tablicy wartości BYTE. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgByteVals. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

Uwagi

Kolumna źródła danych musi mieć typ ODBC SQL_TINYINT. Zestaw rekordów musi zdefiniować element członkowski danych pola typu wskaźnik do typu BYTE.

Jeśli zainicjujesz wartości prgByteVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Zobacz RFX_Text_Bulk.

Wymagania

Nagłówek: afxdb.h

RFX_Date_Bulk

Przesyła wiele wierszy TIMESTAMP_STRUCT danych z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

prgTSVals
Wskaźnik do tablicy wartości TIMESTAMP_STRUCT. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów. Aby uzyskać więcej informacji o typie danych TIMESTAMP_STRUCT, zobacz temat "Typy danych języka C" w dodatku D w dokumentacji programisty zestawu SDK ODBC.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgTSVals. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

Uwagi

Kolumna źródła danych może mieć typ ODBC SQL_DATE, SQL_TIME lub SQL_TIMESTAMP. Zestaw rekordów musi zdefiniować element członkowski danych pola wskaźnika typu, aby TIMESTAMP_STRUCT.

Jeśli zainicjujesz wartości prgTSVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Zobacz RFX_Text_Bulk.

Wymagania

Nagłówek: afxdb.h

RFX_Double_Bulk

Transferuje wiele wierszy danych zmiennoprzecinkowych o podwójnej precyzji z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

prgDblVals
Wskaźnik do tablicy double wartości. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgDblVals. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

Uwagi

Kolumna źródła danych musi mieć typ ODBC SQL_DOUBLE. Zestaw rekordów musi zdefiniować element członkowski danych pola typu wskaźnik na double.

Jeśli zainicjujesz wartości prgDblVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Zobacz RFX_Text_Bulk.

Wymagania

Nagłówek: afxdb.h

RFX_Int_Bulk

Transferuje dane całkowite między elementami członkowskimi CRecordset danych pól obiektu a kolumnami rekordu w źródle danych typu ODBC SQL_SMALLINT.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji na temat operacji, CFieldExchange które może określić obiekt, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu int, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

Przykład

Zobacz RFX_Text.

Wymagania

Nagłówek: afxdb.h

RFX_Long_Bulk

Transferuje wiele wierszy długich danych całkowitych z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

prgLongVals
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgLongVals. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

Uwagi

Kolumna źródła danych musi mieć typ ODBC SQL_INTEGER. Zestaw rekordów musi zdefiniować element członkowski danych pola typu wskaźnik na long.

Jeśli zainicjujesz wartości prgLongVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Zobacz RFX_Text_Bulk.

Wymagania

Nagłówek: afxdb.h

RFX_Single_Bulk

Transferuje wiele wierszy danych zmiennoprzecinkowych z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

prgFltVals
Wskaźnik do tablicy float wartości. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgFltVals. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

Uwagi

Kolumna źródła danych musi mieć typ ODBC SQL_REAL. Zestaw rekordów musi zdefiniować element członkowski danych pola typu wskaźnik na float.

Jeśli zainicjujesz wartości prgFltVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Zobacz RFX_Text_Bulk.

Wymagania

Nagłówek: afxdb.h

RFX_Text_Bulk

Transferuje wiele wierszy danych znaków z kolumny źródła danych ODBC do odpowiedniej tablicy w obiekcie pochodnym CRecordset.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu CFieldExchange . Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji. Aby uzyskać więcej informacji, zobacz artykuł Wymiana pól rekordów: Jak działa RFX.

szName
Nazwa kolumny danych.

prgStrVals
Wskaźnik do tablicy wartości LPSTR. Ta tablica będzie przechowywać dane, które mają być przesyłane ze źródła danych do zestawu rekordów. Należy pamiętać, że w bieżącej wersji ODBC te wartości nie mogą być Unicode.

prgLengths
Wskaźnik do tablicy długich liczb całkowitych. Ta tablica będzie przechowywać długość w bajtach każdej wartości w tablicy wskazywanej przez prgStrVals. Ta długość wyklucza znak zakończenia wartości null. Należy pamiętać, że wartość SQL_NULL_DATA będzie przechowywana, jeśli odpowiedni element danych zawiera wartość null. Aby uzyskać więcej informacji, zobacz funkcję SQLBindCol interfejsu API ODBC w dokumentacji programisty zestawu SDK ODBC.

nMaxLength
Maksymalna dozwolona długość wartości przechowywanych w tablicy wskazywana przez prgStrVals, w tym znak zakończenia null. Aby upewnić się, że dane nie zostaną obcięte, przekaż wystarczająco dużą wartość, aby pomieścić największy oczekiwany element danych.

Uwagi

Kolumna źródła danych może mieć typ ODBC SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL lub SQL_NUMERIC. Zestaw rekordów musi zdefiniować element członkowski danych pola typu LPSTR.

Jeśli zainicjujesz wartości prgStrVals i prgLengths na wartość NULL, wówczas tablice, do których wskazują, zostaną przydzielone automatycznie, z rozmiarami równymi rozmiarowi zestawu wierszy.

Uwaga

Wymiana pól rekordów zbiorczych przesyła tylko dane ze źródła danych do obiektu zestawu rekordów. Aby zestaw rekordów był aktualizowalny, należy użyć funkcji SQLSetPosinterfejsu API ODBC .

Aby uzyskać więcej informacji, zobacz artykuły Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC) i Wymiana pól rekordów (RFX).

Przykład

Musisz ręcznie napisać wywołania w przesłonięć DoBulkFieldExchange . W tym przykładzie pokazano wywołanie metody RFX_Text_Bulk, a także wywołanie RFX_Long_Bulkmetody na potrzeby transferu danych. Te wywołania są poprzedzone wywołaniem obiektu CFieldExchange::SetFieldType. Należy pamiętać, że w przypadku parametrów należy wywołać funkcje RFX zamiast funkcji Bulk RFX.

void CMultiCustomer::DoBulkFieldExchange(CFieldExchange* pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Long_Bulk(pFX, _T("[CustomerID]"), &m_pCustomerID, &m_pcCustomerID);
   RFX_Text_Bulk(pFX, _T("[ContactFirstName]"), &m_pContactFirstName, &m_pcContactFirstName, 50);
   RFX_Text_Bulk(pFX, _T("[PostalCode]"), &m_pPostalCode, &m_pcPostalCode, 50);
   RFX_Text_Bulk(pFX, _T("[L_Name]"), &m_pL_Name, &m_pcL_Name, 50);
   RFX_Long_Bulk(pFX, _T("[BillingID]"), &m_pBillingID, &m_pcBillingID);

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

Wymagania

Nagłówek: afxdb.h

DFX_Binary

Transferuje tablice bajtów między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu CByteArray jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

nPreAllocSize
Platforma wstępnie przydziela tę ilość pamięci. Jeśli dane są większe, platforma przydzieli więcej miejsca zgodnie z potrzebami. Aby uzyskać lepszą wydajność, ustaw ten rozmiar na wartość wystarczająco dużą, aby zapobiec reallocations. Domyślny rozmiar jest zdefiniowany w AFXDAO. Plik H jako AFX_DAO_BINARY_DEFAULT_SIZE.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Wartość domyślna, AFX_DAO_DISABLE_FIELD_CACHE, nie używa podwójnego buforowania i należy samodzielnie wywołać metodę SetFieldDirty i SetFieldNull . Druga możliwa wartość, AFX_DAO_ENABLE_FIELD_CACHE, używa podwójnego buforowania i nie trzeba wykonywać dodatkowej pracy, aby oznaczyć pola zanieczyszczone lub Null. Ze względu na wydajność i pamięć należy unikać tej wartości, chyba że dane binarne są stosunkowo małe.

Uwaga

Możesz określić, czy dane są domyślnie buforowane dwukrotnie dla wszystkich pól, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_BYTES w dao i typem CByteArray w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Bool

Transferuje dane logiczne między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu BOOL jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_BOOL w dao i typem BOOL w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Byte

Transferuje pojedyncze bajty między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu BYTE jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_BYTES w dao i typem BYTE w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Currency

Przesyła dane walutowe między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych ta wartość jest pobierana z określonego elementu członkowskiego danych typu COleCurrency. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_CURRENCY w dao i typem COleCurrency w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_DateTime

Przesyła dane o godzinie i dacie między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. Funkcja przyjmuje odwołanie do obiektu COleDateTime . W przypadku transferu z zestawu rekordów do źródła danych ta wartość jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_DATE w dao i typem COleDateTime w zestawie rekordów.

Uwaga

COleDateTimeZastępuje CTime i TIMESTAMP_STRUCT w tym celu w klasach DAO. CTime i TIMESTAMP_STRUCT są nadal używane dla klas dostępu do danych opartych na ODBC.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Double

Transferuje podwójne dane zmiennoprzecinkowe między elementami członkowskimi danych pola obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu double, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_R8 w dao i typem double float w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Long

Przesyła długie dane całkowite między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu long, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_I4 w dao i typem long w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_LongBinary

Ważne zaleca się użycie DFX_Binary zamiast tej funkcji.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu CLongBinary jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwPreAllocSize
Platforma wstępnie przydziela tę ilość pamięci. Jeśli dane są większe, platforma przydzieli więcej miejsca zgodnie z potrzebami. Aby uzyskać lepszą wydajność, ustaw ten rozmiar na wartość wystarczająco dużą, aby zapobiec reallocations.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Wartość domyślna, AFX_DISABLE_FIELD_CACHE, nie używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_ENABLE_FIELD_CACHE. Używa podwójnego buforowania i nie trzeba wykonywać dodatkowych czynności, aby oznaczyć pola zanieczyszczone lub Null. Ze względu na wydajność i pamięć należy unikać tej wartości, chyba że dane binarne są stosunkowo małe.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

DFX_LongBinary zapewnia zgodność z klasami MFC ODBC. Funkcja DFX_LongBinary przesyła dane binarne dużego obiektu (BLOB) przy użyciu klasy CLongBinary między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych. Dane są mapowane między typem DAO_BYTES w dao i typem CLongBinary w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Short

Transferuje krótkie dane całkowite między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu short, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_I2 w dao i typem short w zestawie rekordów.

Uwaga

DFX_Short jest odpowiednikiem RFX_Int dla klas opartych na ODBC.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Single

Transferuje dane zmiennoprzecinkowe między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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

Parametry

Pfx
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu float, jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz zadzwonić SetFieldDirty i SetFieldNull siebie.

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_R4 w dao i typem float w zestawie rekordów.

Przykład

Zobacz DFX_Text.

Wymagania

Nagłówek: afxdao.h

DFX_Text

Transferuje CString dane między elementami członkowskimi danych pól obiektu CDaoRecordset i kolumnami rekordu w źródle danych.

Składnia

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
Wskaźnik do obiektu klasy CDaoFieldExchange. Ten obiekt zawiera informacje służące do definiowania kontekstu dla każdego wywołania funkcji.

szName
Nazwa kolumny danych.

wartość
Wartość przechowywana w wskazanym elemencie danych — wartość, która ma zostać przeniesiona. W przypadku transferu z zestawu rekordów do źródła danych wartość typu CString jest pobierana z określonego elementu członkowskiego danych. W przypadku transferu ze źródła danych do zestawu rekordów wartość jest przechowywana w określonym elemencie członkowskim danych.

nPreAllocSize
Platforma wstępnie przydziela tę ilość pamięci. Jeśli dane są większe, platforma przydzieli więcej miejsca zgodnie z potrzebami. Aby uzyskać lepszą wydajność, ustaw ten rozmiar na wartość wystarczająco dużą, aby zapobiec reallocations.

dwBindOptions
Opcja, która umożliwia korzystanie z mechanizmu podwójnego buforowania MFC na potrzeby wykrywania zmienionych pól zestawu rekordów. Domyślna AFX_DAO_ENABLE_FIELD_CACHE używa podwójnego buforowania. Druga możliwa wartość to AFX_DAO_DISABLE_FIELD_CACHE. Jeśli określisz tę wartość, MFC nie sprawdza tego pola. Musisz samodzielnie wywołać metodę SetFieldDirty i SetFieldNull .

Uwaga

Możesz kontrolować, czy dane są domyślnie buforowane dwukrotnie, ustawiając ustawienie CDaoRecordset::m_bCheckCacheForDirtyFields.

Uwagi

Dane są mapowane między typem DAO_CHAR w dao (lub, jeśli zdefiniowano symbol _UNICODE, DAO_WCHAR) i wpisz CString w zestawie rekordów. n

Przykład

W tym przykładzie pokazano kilka wywołań elementu DFX_Text. Zwróć również uwagę na dwa wywołania obiektu CDaoFieldExchange::SetFieldType. Musisz napisać pierwsze wywołanie metody i SetFieldType wywołanie dfX. Drugie wywołanie i skojarzone z nim wywołania DFX są zwykle zapisywane przez kreatora kodu, który wygenerował klasę.

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);
}

Wymagania

Nagłówek: afxdao.h

Zobacz też

Makra i globalne
CRecordset::D oFieldExchange
CRecordset::D oBulkFieldExchange
CDaoRecordset::D oFieldExchange