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. PSEUDONULL
nie 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 CDaoFieldExchange
pliku , 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.