Klasa CDaoRecordView
Widok, który wyświetla rekordy bazy danych w kontrolkach.
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 AFX_NOVTABLE CDaoRecordView : public CFormView
Elementy członkowskie
Konstruktory chronione
Nazwa/nazwisko | opis |
---|---|
CDaoRecordView::CDaoRecordView | CDaoRecordView Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CDaoRecordView::IsOnFirstRecord | Zwraca wartość nonzero, jeśli bieżący rekord jest pierwszym rekordem w skojarzonym zestawie rekordów. |
CDaoRecordView::IsOnLastRecord | Zwraca wartość nonzero, jeśli bieżący rekord jest ostatnim rekordem w skojarzonym zestawie rekordów. |
CDaoRecordView::OnGetRecordset | Zwraca wskaźnik do obiektu klasy pochodzącej z CDaoRecordset klasy . KlasaWizard zastępuje tę funkcję w razie potrzeby i tworzy zestaw rekordów. |
CDaoRecordView::OnMove | Jeśli bieżący rekord uległ zmianie, aktualizuje go w źródle danych, a następnie przechodzi do określonego rekordu (następny, poprzedni, pierwszy lub ostatni). |
Uwagi
Widok jest widokiem formularza połączonym bezpośrednio z obiektem CDaoRecordset
. Widok jest tworzony na podstawie zasobu szablonu okna dialogowego i wyświetla pola CDaoRecordset
obiektu w kontrolkach szablonu okna dialogowego. Obiekt CDaoRecordView
używa wymiany danych dialogowych (DDX) i wymiany pól rekordów DAO (DFX) w celu zautomatyzowania przenoszenia danych między kontrolkami w formularzu i polach zestawu rekordów. CDaoRecordView
Udostępnia również domyślną implementację przenoszenia do pierwszego, następnego, poprzedniego lub ostatniego rekordu oraz interfejs do aktualizowania rekordu aktualnie w widoku.
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 uzyskać dostęp do źródeł danych ODBC za pomocą klas DAO; Klasy DAO zazwyczaj oferują lepsze możliwości, ponieważ używają aparatu bazy danych Microsoft Jet.
Najczęstszym sposobem tworzenia widoku rekordów jest Kreator aplikacji. Kreator aplikacji tworzy zarówno klasę widoku rekordu, jak i skojarzona z nią klasę zestawu rekordów w ramach szkieletowej aplikacji początkowej.
Jeśli po prostu potrzebujesz pojedynczego formularza, łatwiej jest pracę kreatora aplikacji. KlasaWizard umożliwia podjęcie decyzji o użyciu widoku rekordu w dalszej części procesu programowania. Jeśli nie utworzysz klasy widoku rekordów za pomocą Kreatora aplikacji, możesz utworzyć ją później za pomocą klasy ClassWizard. Użycie klasy ClassWizard do utworzenia widoku rekordu i zestawu rekordów oddzielnie, a następnie połączenia z nimi jest najbardziej elastycznym podejściem, ponieważ zapewnia większą kontrolę nad nazewnictwem klasy zestawu rekordów i jej klasy . H/. Pliki CPP. Takie podejście umożliwia również posiadanie wielu widoków rekordów w tej samej klasie zestawu rekordów.
Aby ułatwić użytkownikom końcowym przejście z rekordu do rekordu w widoku rekordu, Kreator aplikacji tworzy zasoby menu (i opcjonalnie pasek narzędzi) umożliwiające przejście do pierwszego, następnego, poprzedniego lub ostatniego rekordu. Jeśli tworzysz klasę widoku rekordów za pomocą klasy ClassWizard, musisz utworzyć te zasoby samodzielnie za pomocą menu i edytorów map bitowych.
Aby uzyskać informacje na temat domyślnej implementacji przenoszenia rekordu z rekordu do rekordu, zobacz IsOnFirstRecord
i IsOnLastRecord
artykuł Using a Record View (Używanie widoku rekordu), który ma zastosowanie zarówno do , jak CRecordView
i CDaoRecordView
.
CDaoRecordView
śledzi pozycję użytkownika w zestawie rekordów, dzięki czemu widok rekordów może zaktualizować interfejs użytkownika. Gdy użytkownik przechodzi na końcu zestawu rekordów, widok rekordu wyłącza obiekty interfejsu użytkownika — takie jak elementy menu lub przyciski paska narzędzi — w celu dalszego przechodzenia w tym samym kierunku.
Aby uzyskać więcej informacji na temat deklarowania i używania widoków rekordów i klas zestawów rekordów, zobacz "Projektowanie i tworzenie widoku rekordów" w artykule Widoki rekordów. Aby uzyskać więcej informacji o sposobie działania widoków rekordów i sposobie ich używania, zobacz artykuł Using a Record View (Korzystanie z widoku rekordów). Wszystkie wymienione powyżej artykuły dotyczą zarówno elementów , jak CRecordView
i CDaoRecordView
.
Hierarchia dziedziczenia
CDaoRecordView
Wymagania
Nagłówek: afxdao.h
CDaoRecordView::CDaoRecordView
Podczas tworzenia obiektu typu pochodzącego z CDaoRecordView
metody wywołaj jedną z form konstruktora, aby zainicjować obiekt widoku i zidentyfikować zasób okna dialogowego, na którym opiera się widok.
explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);
Parametry
lpszTemplateName
Zawiera ciąg o wartości null, który jest nazwą zasobu szablonu okna dialogowego.
nIDTemplate
Zawiera identyfikator zasobu szablonu okna dialogowego.
Uwagi
Możesz zidentyfikować zasób według nazwy (przekazać ciąg jako argument do konstruktora) lub według jego identyfikatora (przekazać niepodpisaną liczbę całkowitą jako argument). Zalecane jest użycie identyfikatora zasobu.
Uwaga
Klasa pochodna musi podać własny konstruktor. W konstruktorze klasy pochodnej wywołaj konstruktor CDaoRecordView::CDaoRecordView
z nazwą zasobu lub identyfikatorem jako argumentem.
CDaoRecordView::OnInitialUpdate
wywołuje metodę CWnd::UpdateData
, która wywołuje metodę CWnd::DoDataExchange
. To początkowe wywołanie służące do DoDataExchange
łączenia kontrolek (pośrednio) z CDaoRecordset
elementami CDaoRecordView
członkowskimi danych pól utworzonymi przez klasę ClassWizard. Tych składowych danych nie można używać do momentu wywołania funkcji składowej klasy CFormView::OnInitialUpdate
bazowej.
Uwaga
Jeśli używasz klasy ClassWizard, kreator definiuje enum
wartość CDaoRecordView::IDD
w deklaracji klasy i używa jej na liście inicjowania składowych dla konstruktora.
CMyDaoRecordView::CMyDaoRecordView()
: CDaoRecordView(CMyDaoRecordView::IDD)
{
m_pSet = NULL;
// TODO: add construction code here
}
CDaoRecordView::IsOnFirstRecord
Wywołaj tę funkcję składową, aby określić, czy bieżący rekord jest pierwszym rekordem w obiekcie zestawu rekordów skojarzonym z tym widokiem rekordów.
BOOL IsOnFirstRecord();
Wartość zwracana
Nonzero, jeśli bieżący rekord jest pierwszym rekordem w zestawie rekordów; w przeciwnym razie 0.
Uwagi
Ta funkcja jest przydatna do pisania własnych implementacji domyślnych programów obsługi aktualizacji poleceń napisanych przez klasę ClassWizard.
Jeśli użytkownik przejdzie do pierwszego rekordu, platforma wyłączy wszystkie obiekty interfejsu użytkownika (na przykład elementy menu lub przyciski paska narzędzi) do przejścia do pierwszego lub poprzedniego rekordu.
CDaoRecordView::IsOnLastRecord
Wywołaj tę funkcję składową, aby określić, czy bieżący rekord jest ostatnim rekordem w obiekcie zestawu rekordów skojarzonym z tym widokiem rekordów.
BOOL IsOnLastRecord();
Wartość zwracana
Nonzero, jeśli bieżący rekord jest ostatnim rekordem w zestawie rekordów; w przeciwnym razie 0.
Uwagi
Ta funkcja jest przydatna do pisania własnych implementacji domyślnych programów obsługi aktualizacji poleceń, które klasyWizard zapisuje w celu obsługi interfejsu użytkownika do przenoszenia z rekordu do rekordu.
Uwaga
Wynik tej funkcji jest niezawodny, z wyjątkiem tego, że widok może nie być w stanie wykryć końca zestawu rekordów, dopóki użytkownik nie przeniesie się obok niego. Użytkownik może przejść poza ostatni rekord, zanim widok rekordu będzie mógł stwierdzić, że musi wyłączyć wszystkie obiekty interfejsu użytkownika do przejścia do następnego lub ostatniego rekordu. Jeśli użytkownik przechodzi obok ostatniego rekordu, a następnie przechodzi z powrotem do ostatniego rekordu (lub przed nim), widok rekordu może śledzić pozycję użytkownika w zestawie rekordów i poprawnie wyłączyć obiekty interfejsu użytkownika.
CDaoRecordView::OnGetRecordset
Zwraca wskaźnik do obiektu pochodnego skojarzonego CDaoRecordset
z widokiem rekordu.
virtual CDaoRecordset* OnGetRecordset() = 0;
Wartość zwracana
Wskaźnik do obiektu pochodnego CDaoRecordset
, jeśli obiekt został pomyślnie utworzony; w przeciwnym razie wskaźnik NULL.
Uwagi
Należy zastąpić tę funkcję składową, aby utworzyć lub uzyskać obiekt zestawu rekordów i zwrócić do niej wskaźnik. Jeśli zadeklarujesz klasę widoku rekordów za pomocą klasy ClassWizard, kreator napisze dla Ciebie domyślne zastąpienie. Domyślna implementacja klasyWizard zwraca wskaźnik zestawu rekordów przechowywany w widoku rekordu, jeśli istnieje. Jeśli tak nie jest, tworzy obiekt zestawu rekordów typu określonego za pomocą klasy ClassWizard i wywołuje funkcję Open
składową, aby otworzyć tabelę lub uruchomić zapytanie, a następnie zwraca wskaźnik do obiektu.
Aby uzyskać więcej informacji i przykładów, zobacz artykuł Record Views: Using a Record View (Widoki rekordów: używanie widoku rekordów).
CDaoRecordView::OnMove
Wywołaj tę funkcję składową, aby przejść do innego rekordu w zestawie rekordów i wyświetlić jego pola w kontrolkach widoku rekordów.
virtual BOOL OnMove(UINT nIDMoveCommand);
Parametry
nIDMoveCommand
Jedna z następujących standardowych wartości identyfikatora polecenia:
ID_RECORD_FIRST Przenieś do pierwszego rekordu w zestawie rekordów.
ID_RECORD_LAST Przenieś do ostatniego rekordu w zestawie rekordów.
ID_RECORD_NEXT Przenieś do następnego rekordu w zestawie rekordów.
ID_RECORD_PREV Przenieś do poprzedniego rekordu w zestawie rekordów.
Wartość zwracana
Nonzero, jeśli przeniesienie zakończyło się pomyślnie; w przeciwnym razie 0, jeśli żądanie przeniesienia zostało odrzucone.
Uwagi
Domyślna implementacja wywołuje odpowiednią funkcję CDaoRecordset
składową Move obiektu skojarzonego z widokiem rekordów.
Domyślnie aktualizuje bieżący rekord w źródle danych, OnMove
jeśli użytkownik zmienił go w widoku rekordu.
Kreator aplikacji tworzy zasób menu z elementami menu Pierwszy rekord, Ostatni rekord, Następny rekord i Poprzedni rekord. Jeśli wybierzesz opcję Początkowy pasek narzędzi, Kreator aplikacji utworzy również pasek narzędzi z przyciskami odpowiadającymi tym poleceniom.
Jeśli przejdziesz obok ostatniego rekordu w zestawie rekordów, widok rekordu będzie nadal wyświetlać ostatni rekord. Jeśli przejdziesz wstecz do pierwszego rekordu, widok rekordu będzie nadal wyświetlać pierwszy rekord.
Uwaga
Wywołanie OnMove
zgłasza wyjątek, jeśli zestaw rekordów nie ma żadnych rekordów. Wywołaj odpowiednią funkcję obsługi aktualizacji interfejsu użytkownika — OnUpdateRecordFirst
, , OnUpdateRecordLast
OnUpdateRecordNext
lub OnUpdateRecordPrev
— przed odpowiednią operacją przenoszenia, aby określić, czy zestaw rekordów ma jakiekolwiek rekordy.
Zobacz też
Klasa CFormView
Wykres hierarchii
Klasa CDaoRecordset
Klasa CDaoTableDef
Klasa CDaoQueryDef
Klasa CDaoDatabase
Klasa CDaoWorkspace
Klasa CFormView