Klasa COleDBRecordView
Widok, który wyświetla rekordy bazy danych w kontrolkach.
Składnia
class COleDBRecordView : public CFormView
Elementy członkowskie
Konstruktory chronione
Nazwa/nazwisko | opis |
---|---|
COleDBRecordView::COleDBRecordView | COleDBRecordView Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
COleDBRecordView::OnGetRowset | Zwraca standardową wartość HRESULT. |
COleDBRecordView::OnMove | Aktualizuje bieżący rekord (jeśli jest zanieczyszczony) 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 CRowset
. Widok jest tworzony na podstawie zasobu szablonu okna dialogowego i wyświetla pola CRowset
obiektu w kontrolkach szablonu okna dialogowego. Obiekt COleDBRecordView
używa wymiany danych dialogowych (DDX) i funkcji nawigacji wbudowanej w CRowset
program , aby zautomatyzować przenoszenie danych między kontrolkami w formularzu i polach zestawu wierszy. COleDBRecordView
Udostępnia również domyślną implementację przejścia do pierwszego, następnego, poprzedniego lub ostatniego rekordu oraz interfejs do aktualizowania rekordu aktualnie w widoku.
Za pomocą funkcji COleDbRecordView
DDX można pobierać dane bezpośrednio z zestawu rekordów bazy danych i wyświetlać je w kontrolce okna dialogowego. Należy użyć DDX_*
metod (takich jak DDX_Text
), a nie DDX_Field*
funkcji (takich jak DDX_FieldText
) z COleDbRecordView
. DDX_FieldText
program nie będzie działać, COleDbRecordView
ponieważ DDX_FieldText
przyjmuje dodatkowy argument typu CRecordset*
(dla CRecordView
) lub CDaoRecordset*
(dla CDaoRecordView
).
Uwaga
Jeśli pracujesz z klasami Obiektów dostępu do danych (DAO), a nie z klasami szablonów użytkownika OLE DB, zamiast tego użyj klasy CDaoRecordView . Aby uzyskać więcej informacji, zobacz artykuł Omówienie: programowanie bazy danych.
COleDBRecordView
śledzi pozycję użytkownika w zestawie wierszy, aby widok rekordu mógł zaktualizować interfejs użytkownika. Gdy użytkownik przechodzi na końcu zestawu wierszy, 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 klas zestawów wierszy, zobacz artykuł Using OLE DB Consumer Templates (Używanie szablonów odbiorców OLE DB).
Hierarchia dziedziczenia
COleDBRecordView
Wymagania
Nagłówek: afxoledb.h
COleDBRecordView::COleDBRecordView
COleDBRecordView
Tworzy obiekt.
COleDBRecordView(LPCTSTR lpszTemplateName);
COleDBRecordView(UINT nIDTemplate);
Parametry
lpszTemplateName
Zawiera ciąg zakończony o wartości null, który jest nazwą zasobu szablonu okna dialogowego.
nIDTemplate
Zawiera identyfikator zasobu szablonu okna dialogowego.
Uwagi
Podczas tworzenia obiektu typu pochodzącego z COleDBRecordView
metody wywołaj jeden z konstruktorów, aby utworzyć obiekt widoku i zidentyfikować zasób okna dialogowego, na którym opiera się widok. Zasób można zidentyfikować według nazwy (przekazać ciąg jako argument do konstruktora) lub według jego identyfikatora (przekazać niepodpisaną liczbę całkowitą jako argument).
Uwaga
Klasa pochodna musi podać własny konstruktor. W konstruktorze wywołaj konstruktor , COleDBRecordView::COleDBRecordView
z nazwą zasobu lub identyfikatorem jako argumentem.
COleDBRecordView::OnGetRowset
Zwraca uchwyt dla obiektu CRowset<> skojarzonego z widokiem rekordu.
virtual CRowset<>* OnGetRowset() = 0;
Wartość zwracana
Standardowa wartość HRESULT.
Uwagi
Należy zastąpić tę funkcję składową, aby utworzyć lub uzyskać obiekt zestawu wierszy i zwrócić do niej uchwyt. Jeśli zadeklarujesz klasę widoku rekordów za pomocą klasy ClassWizard, kreator napisze dla Ciebie domyślne zastąpienie. Domyślna implementacja klasyWizard zwraca uchwyt zestawu wierszy przechowywany w widoku rekordu, jeśli istnieje. Jeśli tak nie jest, tworzy obiekt zestawu wierszy określonego za pomocą klasy ClassWizard i wywołuje funkcję Open
składową, aby otworzyć tabelę lub uruchomić zapytanie, a następnie zwraca uchwyt do obiektu.
Uwaga
Poprzednio do MFC 7.0 OnGetRowset
zwrócił wskaźnik do CRowset
. Jeśli masz kod, który wywołuje OnGetRowset
metodę , musisz zmienić typ powrotu na klasę templatized CRowset<>.
Przykład
CFrameWnd* pFrame = (CFrameWnd*)AfxGetMainWnd();
COleDBRecordView* pView = (COleDBRecordView*)pFrame->GetActiveView();
// CProductAccessor is a user-defined accessor class
CRowset<CAccessor<CProductAccessor>>* pRowSet =
(CRowset<CAccessor<CProductAccessor>>*)pView->OnGetRowset();
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).
COleDBRecordView::OnMove
Przechodzi do innego rekordu w zestawie wierszy i wyświetla swoje pola w kontrolkach widoku rekordu.
virtual BOOL OnMove(UINT nIDMoveCommand);
Parametry
nIDMoveCommand
Jedna z następujących standardowych wartości identyfikatora polecenia:
ID_RECORD_FIRST — przejdź do pierwszego rekordu w zestawie rekordów.
ID_RECORD_LAST — przejdź do ostatniego rekordu w zestawie rekordów.
ID_RECORD_NEXT — przejdź do następnego rekordu w zestawie rekordów.
ID_RECORD_PREV — przejdź 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ą Move
funkcję CRowset
składową obiektu skojarzonego z widokiem rekordu.
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. W przypadku wybrania opcji Docka paska 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.