Udostępnij za pośrednictwem


Klasa CDaoFieldExchange

Obsługuje procedury wymiany pól rekordów DAO (DFX) używane przez klasy baz danych DAO.

Uwaga

DaO jest obsługiwane za pośrednictwem pakietu Office 2013. DaO 3.6 jest wersją ostateczną i jest uważany za przestarzałą.

Składnia

class CDaoFieldExchange

Elementy członkowskie

Metody publiczne

Nazwa/nazwisko opis
CDaoFieldExchange::IsValidOperation Zwraca wartość niezerową, jeśli bieżąca operacja jest odpowiednia dla typu aktualizowanego pola.
CDaoFieldExchange::SetFieldType Określa typ elementu członkowskiego danych zestawu rekordów — kolumna lub parametr — reprezentowany przez wszystkie kolejne wywołania funkcji DFX do następnego wywołania metody SetFieldType.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CDaoFieldExchange::m_nOperation Operacja DFX wykonywana przez bieżące wywołanie funkcji składowej DoFieldExchange zestawu rekordów.
CDaoFieldExchange::m_prs Wskaźnik do zestawu rekordów, na którym są wykonywane operacje DFX.

Uwagi

CDaoFieldExchange nie ma klasy bazowej.

Użyj tej klasy, jeśli piszesz procedury wymiany danych dla niestandardowych typów danych; w przeciwnym razie nie będziesz bezpośrednio używać tej klasy. DfX wymienia dane między elementami członkowskimi danych pól obiektu CDaoRecordset i odpowiednimi polami bieżącego rekordu w źródle danych. DfX zarządza wymianą w obu kierunkach, ze źródła danych i do źródła danych. Aby uzyskać informacje na temat pisania niestandardowych procedur DFX, zobacz Technical Note 53 (Uwaga techniczna 53 ).

Uwaga

Klasy baz danych DAO różnią się od klas baz danych MFC opartych na technologii Open Database Connectivity (ODBC). Wszystkie nazwy klas bazy danych DAO mają prefiks "CDao". Nadal można uzyskiwać dostęp do źródeł danych ODBC za pomocą klas DAO. Ogólnie rzecz biorąc, klasy MFC oparte na DAO są bardziej zdolne niż klasy MFC oparte na ODBC. Klasy oparte na dao mogą uzyskiwać dostęp do danych, w tym za pośrednictwem sterowników ODBC, za pośrednictwem własnego aparatu bazy danych. Obsługują one również operacje języka Data Definition Language (DDL), takie jak dodawanie tabel za pośrednictwem klas zamiast konieczności samodzielnego wywoływania obiektu DAO.

Uwaga

Wymiana pól rekordów DAO (DFX) jest bardzo podobna do wymiany pól rekordów (RFX) w klasach baz danych MFC opartych na odBC ( CDatabase, CRecordset). Jeśli rozumiesz RFX, łatwo będzie używać systemu PLIKÓW DFX.

Obiekt CDaoFieldExchange udostępnia informacje kontekstowe potrzebne do przeprowadzenia wymiany pól rekordów DAO. CDaoFieldExchange obiekty obsługują wiele operacji, w tym parametry powiązania i składowe danych pól oraz ustawiają różne flagi w polach bieżącego rekordu. Operacje DFX są wykonywane na elementach członkowskich danych klasy rekordów typów zdefiniowanych przez enum typ pola w pliku CDaoFieldExchange. Możliwe wartości FieldType to:

  • CDaoFieldExchange::outputColumn dla elementów członkowskich danych pól.

  • CDaoFieldExchange::param dla składowych danych parametrów.

Funkcja składowa IsValidOperation jest udostępniana do pisania własnych niestandardowych procedur DFX. W funkcjach CDaoRecordset::D oFieldExchange użyjesz polecenia SetFieldType. Aby uzyskać szczegółowe informacje na temat funkcji globalnych DFX, zobacz Funkcje wymiany pól rekordów. Aby uzyskać informacje na temat pisania niestandardowych procedur DFX dla własnych typów danych, zobacz Uwaga techniczna 53.

Hierarchia dziedziczenia

CDaoFieldExchange

Wymagania

Nagłówek: afxdao.h

CDaoFieldExchange::IsValidOperation

Jeśli napiszesz własną funkcję DFX, wywołaj IsValidOperation na początku funkcji, aby określić, czy bieżącą operację można wykonać na określonym typie elementu członkowskiego danych pola (a CDaoFieldExchange::outputColumn lub CDaoFieldExchange::param).

BOOL IsValidOperation();

Wartość zwracana

Niezerowe, jeśli bieżąca operacja jest odpowiednia dla typu aktualizowanego pola.

Uwagi

Niektóre operacje wykonywane przez mechanizm DFX dotyczą tylko jednego z możliwych typów pól. Postępuj zgodnie z modelem istniejących funkcji DFX.

Aby uzyskać dodatkowe informacje na temat pisania niestandardowych procedur DFX, zobacz Technical Note 53 (Uwaga techniczna 53).

CDaoFieldExchange::m_nOperation

Określa operację do wykonania w obiekcie CDaoRecordset skojarzonym z obiektem wymiany pól.

Uwagi

Obiekt CDaoFieldExchange dostarcza kontekst dla wielu różnych operacji DFX na zestawie rekordów.

Uwaga

Wartość opisana PSEUDONULL w poniższych operacjach MarkForAddNew i SetFieldNull jest wartością używaną do oznaczania pól Null. Mechanizm wymiany pól rekordów DAO (DFX) używa tej wartości do określenia, które pola zostały jawnie oznaczone wartością Null. PSEUDONULLnie jest wymagane dla COleDateTime pól i .COleCurrency

Możliwe wartości m_nOperation to:

Działanie opis
AddToParameterList Tworzy klauzulę PARAMETERS instrukcji SQL.
AddToSelectList Tworzy klauzulę SELECT instrukcji SQL.
BindField Tworzy powiązanie pola w bazie danych z lokalizacją pamięci w aplikacji.
BindParam Ustawia wartości parametrów dla zapytania zestawu rekordów.
Fixup Ustawia stan null dla pola.
AllocCache Przydziela pamięć podręczną używaną do sprawdzania pól "brudnych" w zestawie rekordów.
StoreField Zapisuje bieżący rekord w pamięci podręcznej.
LoadField Przywraca buforowane zmienne składowe danych w zestawie rekordów.
FreeCache Zwalnia pamięć podręczną używaną do sprawdzania pól "brudnych" w zestawie rekordów.
SetFieldNull Ustawia stan pola na Wartość Null i wartość PSEUDONULL.
MarkForAddNew Oznacza pola "brudne", jeśli nie PSEUDONULL.
MarkForEdit Oznacza pola "brudne", jeśli nie są zgodne z pamięcią podręczną.
SetDirtyField Ustawia wartości pól oznaczone jako "brudne".
DumpField Zrzuty zawartości pola (tylko debugowanie).
MaxDFXOperation Służy do sprawdzania danych wejściowych.

CDaoFieldExchange::m_prs

Zawiera wskaźnik do obiektu CDaoRecordset skojarzonego z obiektem CDaoFieldExchange .

Uwagi

CDaoFieldExchange::SetFieldType

Wywołaj SetFieldType metodę DoFieldExchange zastąpienia CDaoRecordset klasy.

void SetFieldType(UINT nFieldType);

Parametry

nFieldType
Wartość wyliczenia FieldType zadeklarowana w CDaoFieldExchangepliku , która może być jedną z następujących wartości:

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Uwagi

Zwykle klasa ClassWizard pisze to wezwanie dla Ciebie. Jeśli piszesz własną funkcję i używasz kreatora do pisania DoFieldExchange funkcji, dodaj wywołania do własnej funkcji poza mapą pól. Jeśli nie używasz kreatora, nie będzie mapy pól. Wywołanie poprzedza wywołania funkcji DFX, po jednym dla każdego elementu członkowskiego danych pola klasy i identyfikuje typ pola jako CDaoFieldExchange::outputColumn.

Jeśli sparametryzujesz klasę zestawów rekordów, należy dodać wywołania DFX dla wszystkich składowych danych parametrów (poza mapą pól) i poprzedzić te wywołania wywołaniem metody .SetFieldType Przekaż wartość CDaoFieldExchange::param. (Zamiast tego możesz użyć elementu CDaoQueryDef i ustaw jego wartości parametrów.

Ogólnie rzecz biorąc, każda grupa wywołań funkcji DFX skojarzonych z elementami członkowskimi danych pól lub składowymi danych parametrów musi być poprzedzona wywołaniem metody SetFieldType. Parametr nFieldType każdego SetFieldType wywołania identyfikuje typ elementów członkowskich danych reprezentowanych przez wywołania funkcji DFX, które są zgodne z SetFieldType wywołaniem.

Zobacz też

Wykres hierarchii
Klasa CDaoRecordset