Udostępnij za pośrednictwem


MFC: używanie klas baz danych bez dokumentów i widoków

Czasami nie można korzystać w ramach architektury/widok dokumentu w aplikacji bazy danych.Ten temat tłumaczy:

  • Kiedy nie musisz używać dokumentów takich jak serializacji dokumentu.

  • Opcje Kreatora aplikacji do obsługi aplikacji bez serializacji i związanych z dokumentami pliku takie jak polecenia z menu Nowy, Otwórz, zapisać, i Zapisz jako.

  • Jak pracować z aplikacji korzystającej z minimalnym dokumentu.

  • Struktury aplikacji bez dokumentu lub widoku.

Kiedy nie musisz dokumentów

Niektóre aplikacje mają różne pojęcia dokumentu.Te aplikacje zwykle załadować wszystkie lub większość z pliku z magazynu do pamięci z Otwórz plik polecenia.One odpisać zaktualizowany plik do magazynu w całości z Zapisywanie pliku lub Zapisz jako polecenia.Co użytkownik widzi jest plikiem danych.

Niektóre kategorie aplikacji, jednak nie wymagają dokumentu.Aplikacje baz danych działają pod względem transakcji.Aplikacja wybiera rekordy z bazy danych i przedstawia je użytkownikowi, często jeden po drugim.Co użytkownik widzi jest zwykle pojedynczego rekordu bieżącego, która może być tylko jeden w pamięci.

Jeśli aplikacja wymaga dokumentu do przechowywania danych, można zrezygnować z niektórych lub wszystkich zasad ramowych architektury/widok dokumentu.Ile zrezygnować z zależy od podejścia, preferowany.Następujące działania:

  • Użyj minimalne dokumentu jako miejsce przechowywania połączenia ze źródłem danych, ale zrezygnowanie z dokumentu normalne funkcje, takie jak serializacji.Jest to przydatne, gdy chcesz kilka widoków danych i chcesz zsynchronizować wszystkie widoki, aktualizować je wszystkie na raz i tak dalej.

  • Użyj ramki okna, w którym rysujesz bezpośrednio, a nie przy użyciu widoku.W tym przypadku pominąć dokumentu i zapisać wszelkie dane i połączeń danych w obiekcie okno ramek.

Opcje Kreatora aplikacji dla dokumentów i widoków

Kreator aplikacji MFC ma kilka opcji, w Wybierz obsługa bazy danych, które są wymienione w poniższej tabeli.Jeśli używasz Kreatora aplikacji MFC do tworzenia aplikacji, wszystkie te opcje produkcji aplikacji za pomocą dokumentów i widoków.Niektóre opcje zapewniają dokumentów i widoków, które pominąć dokumentu niepotrzebne funkcje.Aby uzyskać dodatkowe informacje, zobacz Obsługa bazy danych, kreator aplikacji MFC.

Opcja

Widok

Dokument

Brak

Dziedzicz z CView.

Miejsce bez obsługi bazy danych.Jest to opcja domyślna.

Po wybraniu Widok dokumentu/architecture obsługuje opcji na Typ aplikacji, kreator aplikacji MFC strony, otrzymasz pełny dokument wsparcia włącznie serializacji i New, Otwórz, zapisać, i Zapisz jako polecenia na pliku menu.Zobacz aplikacji bez dokumentu.

Tylko pliki nagłówkowe

Dziedzicz z CView.

Zapewnia podstawowy poziom wsparcia bazy danych aplikacji.

Zawiera Afxdb.h.Dodaje łącze biblioteki, ale nie tworzy żadnych klas specyficznych dla bazy danych.Można później utworzyć zestawy rekordów i używać ich do zbadania i aktualizacji rekordów.

Widok bazy danych bez obsługi plików

PochodneCRecordView

Zapewnia obsługę dokumentów, ale nie obsługuje serializacji.Dokument można zapisać zestaw rekordów i koordynować wiele widoków; nie obsługuje serializacji lub New, Otwórz, zapisać, i Zapisz jako polecenia.Zobacz wnioski z minimalnym dokumenty.Jeśli w widoku bazy danych, należy określić źródło danych.

Zawiera pliki nagłówkowe bazy danych, bibliotek DLL, wyświetlanie rekordu i zestaw rekordów. (Dostępne tylko dla aplikacji za pomocą Widok dokumentu/architecture obsługuje opcji wybranej na Typ aplikacji, kreator aplikacji MFC strony.)

Widok bazy danych z pliku pomocy technicznej

PochodneCRecordView

Zapewnia obsługę pełny dokument, w tym serializacja i dokumentów związanych z pliku polecenia menu.Aplikacje baz danych są zazwyczaj funkcjonują na zasadzie-rekord, a nie na jeden plik podstawy, a więc nie ma potrzeby serializacji.Jednak może mieć specjalnego przeznaczenia do serializacji.Zobacz wnioski z minimalnym dokumenty.Jeśli w widoku bazy danych, należy określić źródło danych.

Zawiera pliki nagłówkowe bazy danych, bibliotek DLL, wyświetlanie rekordu i zestaw rekordów. (Dostępne tylko dla aplikacji za pomocą Widok dokumentu/architecture obsługuje opcji wybranej na Typ aplikacji, kreator aplikacji MFC strony.)

Omówienie rozwiązania alternatywne w stosunku do serializacji i zastosowań alternatywnych do serializacji, zobacz Serializacja: serializacja a dane wejściowe/wyjściowe bazy danych.

Wnioski z minimalnym dokumenty

Kreator aplikacji MFC ma dwie opcje obsługi aplikacji dostępu do danych opartych na formularzach.Każda opcja tworzy CRecordView-pochodnych widok klasy i dokumentu.Różnią się one opuszczą z dokumentu.

Dokument bez obsługi plików

Wybierz opcję bazy danych Kreator aplikacji obsługuje widoku bazy danych bez pliku Jeśli nie potrzebujesz serializacji dokumentu.Dokument służy do następujących celów użyteczne:

  • Jest to wygodne miejsce do przechowywania CRecordset obiektu.

    To użycie równoleżnikami zwykłym dokumencie pojęcia: dokument przechowuje dane (lub w tym przypadku zestaw rekordów), a widok jest widokiem dokumentu.

  • Jeśli aplikacja prezentuje wiele widoków (na przykład wiele widoków rekordu), dokument obsługuje koordynację widoki.

    Jeśli wiele widoków pokazywał te same dane, można użyć CDocument::UpdateAllViews funkcji składowej do koordynowania aktualizacje do wszystkich widoków po zmianie dowolnego widoku danych.

Zazwyczaj ta opcja jest używany dla prostych aplikacji opartych na formularzach.Kreator aplikacji automatycznie obsługuje wygodne struktury dla takich aplikacji.

Dokument z obsługą plików

Wybierz opcję bazy danych Kreator aplikacji obsługuje widoku bazy danych z pliku kiedy masz alternatywnego wykorzystania dokumentów związanych z pliku polecenia menu i serializacji dokumentu.Dostęp do danych części programu służy dokument w taki sam sposób jak opisano w Dokumencie bez obsługi plików.Zdolność serializacji dokumentu, można użyć na przykład do odczytywania i zapisywania dokumentu profil użytkownika serializowane przechowujący preferencje użytkownika lub inne przydatne informacje.Aby uzyskać więcej pomysłów, zobacz Serializacja: serializacja a dane wejściowe/wyjściowe bazy danych.

Kreator aplikacji obsługuje tę opcję, ale należy napisać kod, który szereguje dokumentu.Serializowane informacje są przechowywane w dokumencie danych członków.

Aplikacje bez dokumentu

Czasami można napisać aplikację, która nie korzysta z dokumentów lub widoków.Bez dokumentów, możesz przechowywać swoje dane (takie jak CRecordset obiektu) w swojej klasy okno ramek lub swojej aplikacji.Wszelkie dodatkowe wymagania zależą od tego, czy aplikacja stanowi interfejs użytkownika.

Obsługa bazy danych za pomocą interfejsu użytkownika

Jeśli interfejs użytkownika (inne niż, na przykład, interfejs wiersza polecenia konsoli), aplikacja rysuje bezpośrednio do obszaru klienta okna ramki, a nie do wyświetlenia.Taka aplikacja nie używa CRecordView, CFormView, lub CDialog interfejs użytkownika głównego, ale zazwyczaj przy użyciu CDialog dla zwykłych okien dialogowych.

Pisania aplikacji bez dokumentów

Ponieważ Kreator aplikacji nie obsługuje tworzenia aplikacji bez dokumentów, należy napisać własny CWinApp-klasy i, w razie potrzeby również utworzyć CFrameWnd lub CMDIFrameWnd klasy.Zastąpić CWinApp::InitInstance i zadeklarować obiektu aplikacji jako:

CYourNameApp theApp;

Ramach nadal dostarcza mechanizm mapy wiadomości i wiele innych funkcji.

Obsługa bazy danych z dala od interfejsu użytkownika

Niektóre aplikacje muszą, bez interfejsu użytkownika lub tylko jeden minimal.Na przykład załóżmy, że pisania:

  • Obiekt pośredniego dostępu do danych innych aplikacji (klienci) wymagają specjalnego przetwarzania danych między aplikacją a źródłem danych.

  • Aplikacja, która przetwarza dane bez interwencji użytkownika, takich jak aplikacja, która przenosi dane z jednego formatu bazy danych do innej lub taki, który wykonuje obliczenia i wykonuje aktualizacje wsadowe.

Ponieważ żaden dokument nie jest właścicielem CRecordset lub CDaoRecordset obiektu, prawdopodobnie zechcesz przechowywać je jako członek danych osadzonych w swojej CWinApp-klasy aplikacji.Alternatywy obejmują:

  • Nie trzyma się na stałe CRecordset lub CDaoRecordset na wszystkich obiektów.Można przekazać wartości NULL do swojej konstruktorów klas zestawu rekordów.W takim przypadku tworzy tymczasowy w ramach CDatabase lub CDaoDatabase obiektów, korzystając z informacji zawartych w zestawie rekordów GetDefaultConnect funkcji składowej.Jest to najbardziej prawdopodobne alternatywne podejście.

  • Dokonywanie CRecordset lub CDaoRecordset obiekt zmiennej globalnej.Ta zmienna powinna być wskaźnik do obiektu recordset, tworzona dynamicznie w swojej CWinApp::InitInstance zastąpić.Pozwala to uniknąć próby konstruowania obiektu przed zainicjowaniem ramach.

  • Za pomocą obiektów recordset, tak jak w kontekście dokumentu lub widoku.Tworzenie zestawów rekordów członka funkcji aplikacji lub okno ramek obiektów.

Zobacz też

Koncepcje

Klasy baz danych MFC (ODBC i DAO)