Udostępnij za pośrednictwem


MFC: Korzystanie z klas bazy danych z dokumentów i widoków

Można używać klasy MFC bazy danych — DAO lub ODBC — z lub bez architektury/widoku dokumentu.W tym temacie dotyczy pracy z dokumentami i widoków.Wyjaśnia:

  • Jak napisać aplikacji opartych na formularzach za pomocą CRecordView lub CDaoRecordView obiektu jako widok główny dokument.

  • Jak używać obiektów recordset w dokumentach i widoki.

  • Inne zagadnienia.

Alternatywy, zobacz MFC: przy użyciu klas bazy danych bez dokumentów i widoków.

Pisania aplikacji opartych na formularzach

Wiele aplikacji dostępu do danych są oparte na formularzach.Interfejs użytkownika jest formularz, zawierającą formanty, w których użytkownik sprawdza, wejścia lub edycji danych.Aby oparty formularz wniosku, należy użyć klasy CRecordView lub CDaoRecordView.Po uruchomieniu Kreatora aplikacji MFC i zaznacz ODBC typ klienta na Obsługa bazy danych używa projekt strony, CRecordView dla klasy widoku.Kreatorzy nie obsługuje obiektów DAO, więc jeśli chcesz użyć CDaoRecordView, trzeba ją ręcznie kodu.

W aplikacji opartej na formularzu, każdy obiekt rekordu widoku przechowuje wskaźnik do CRecordset lub CDaoRecordset obiektu.Mechanizm wymiany (RFX) w polu rekordu w ramach wymiany danych między zestawu rekordów i źródła danych.Okno dialogowe danych wymiany (DDX) mechanizm wymiany danych między członkami danych pola obiektu zestaw rekordów i formantów na formularzu.CRecordViewlub CDaoRecordView przewiduje również domyślne funkcje obsługi polecenia nawigacji między rekordami w formularzu.

Aby utworzyć aplikacji opartych na formularzach kreatora aplikacji, zobacz Tworzenie aplikacji opartych na formularzach MFC i obsługi bazy danych, Kreator aplikacji MFC.

Aby uzyskać pełne omówienie formularzy, zobacz Widoki rekordu.

Przy użyciu zestawów rekordów w dokumentach i widoków

Wiele prostych aplikacji opartych na formularzach dokumentów nie jest konieczne.Jeśli aplikacja jest bardziej złożony, prawdopodobnie chcesz użyć dokumentu jako serwer proxy dla bazy danych, przechowywanie CDatabase lub CDaoDatabase obiekt, który łączy ze źródłem danych.Aplikacje oparte na formularzu przechowywać zwykle wskaźnik do obiektu zestaw rekordów w widoku.Inne rodzaje aplikacji baz danych przechowywać zestawy rekordów i CDatabase lub CDaoDatabase obiektu w dokumencie.Oto niektóre możliwości używania dokumentów z aplikacji baz danych:

  • Jeżeli uzyskuje dostęp do rekordów w kontekście lokalnym, należy utworzyć CRecordset lub CDaoRecordset obiektu lokalnie w funkcji elementów członkowskich dokumentu lub widoku, w razie potrzeby.

    Obiekt recordset można zadeklarować jako zmienną lokalną w funkcji.Przekazać NULL do konstruktora, co powoduje, że ramy do tworzenia i otwierania czasowego CDatabase lub CDaoDatabase obiekt.Jako alternatywę, przekazać wskaźnik do CDatabase lub CDaoDatabase obiektu.Użyj zestawu rekordów w funkcji i niech będzie niszczone automatycznie, kiedy funkcja.

    Podczas przekazywania NULL do Konstruktora zestawu rekordów, ramach wykorzystuje informacje zawarte w zestawie rekordów GetDefaultConnect Członkowskich funkcja tworzenia CDatabase lub CDaoDatabase obiekt i otwórz go.Kreatorzy zaimplementować GetDefaultConnect dla Ciebie.

  • Jeśli podczas okresu istnienia w dokumencie, uzyskują dostęp do zestawu rekordów, należy osadzić jedną lub więcej CRecordset lub CDaoRecordset obiekty w dokumencie.

    Konstruowanie obiektów recordset podczas inicjowania dokumentu lub w razie potrzeby.Być może napisać funkcję, która zwraca wskaźnik do zestawu rekordów, jeśli już istnieje lub tworzy i otwiera zestaw rekordów, jeśli jeszcze nie istnieje.Zamknij, usunąć i ponownie utwórz zestaw rekordów, w razie potrzeby lub wywołać jej Requery Członkowskich funkcji, aby odświeżyć rekordy.

  • Jeśli w czasie użytkowania w dokumencie, uzyskują dostęp do źródła danych, należy osadzić CDatabase lub CDaoDatabase obiektu lub przechowywania wskaźnik do CDatabase lub CDaoDatabase obiektu w nim.

    CDatabase Lub CDaoDatabase zarządza obiekt połączenia ze źródłem danych.Obiekt jest konstruowana automatycznie podczas budowy dokumentu i wywołania jej Otwórz Członkowskich funkcji podczas inicjowania dokumentu.Utworzenia obiektów recordset w dokumencie funkcji elementów członkowskich, przekazuje się wskaźnik w dokumencie CDatabase lub CDaoDatabase obiektu.Każdy zestaw rekordów to kojarzy ze źródłem danych.Po zamknięciu dokumentu zazwyczaj niszczony jest obiekt bazy danych.Obiekty recordset zazwyczaj są niszczone, gdy wyjściem zakres funkcji.

Inne czynniki

Aplikacje oparte na formularzu często nie posiadają wszelkie wykorzystanie w ramach mechanizmu serializacji dokumentu, więc warto usunąć, wyłączyć lub zastąpić New i Otwórz poleceń pliku menu.Zobacz artykuł serializacji: serializacji kontra Baza danych wejścia i wyjścia.

Można również należy wykorzystać wiele możliwości interfejsu użytkownika, obsługujących w ramach.Na przykład, można użyć wielu CRecordView lub CDaoRecordView obiektów w podziału okna, otwartych wiele zestawów rekordów w wielu różnych okien podrzędnych interfejsu (MDI) dokumentu i tak dalej.

Można zaimplementować drukowanie bez względu na to w widoku użytkownika, czy jest formularz realizowanych z CRecordView lub CDaoRecordView lub coś jeszcze.Jak pochodną klasy CFormView, CRecordView i CDaoRecordView nie obsługuje drukowania, ale można ją zastąpić OnPrint Członkowskich funkcji, aby zezwalał na drukowanie.Aby uzyskać więcej informacji, zobacz klasy CFormView.

Nie można używać na wszystkich dokumentów i widoków.W takim przypadku zobacz MFC: przy użyciu klas bazy danych bez dokumentów i widoków.

Zobacz też

Koncepcje

Klasami baz danych MFC (ODBC i obiektów DAO)