Access

  MS Access 2010+  |  DAO. Data Access Objects  |   VBA 7.0

• DAO. Obiekt Database

Obiekt Database reprezentuje otwartą bazę danych.

Zastosowanie obiektu Database

Obiekt DAO Database

Obiekt Database oraz jego metody i właściwości można wykorzystywać do wykonywania działań na otwartej bazie danych. Za pomocą obiektu Database można:

  • Uruchomić kwerendę funkcjonalną, wykorzystując metodę Execute.
  • Nawiązać połączenie ze źródłem danych ODBC, ustawiając właściwość Connect.
  • Ograniczyć czas oczekiwania na wykonanie kwerendy dotyczącej źródła danych ODBC, ustawiając właściwość QueryTimeout.
  • Określić maksymalną liczbę rekordów, które zostały zmienione przez kwerendę funkcjonalną, wykorzystując właściwość RecordsAffected.
  • Wykonać kwerendę wybierającą i utworzyć obiekt Recordset, wykorzystując metodę OpenRecordset.
  • Określić, w której wersji aparatu bazy danych została utworzona konkretna baza danych, wykorzystując właściwość Version.

Obiekt Database w obszar roboczym Microsoft Jet

W przypadku bazy danych Microsoft Jet (plik .mdb, .accdb), w obszarze roboczym Microsoft Jet do wykonywania działań na obiekcie Database, takich jak tworzenie, modyfikacja lub odczytywanie danych dotyczących jego tabel, kwerend i związków, można również wykorzystywać inne metody, właściwości i kolekcje. Można na przykład:

  • Utworzyć tabele i związki, wykorzystując odpowiednio metody CreateTableDef i CreateRelation.
  • Utworzyć nowe właściwości Database, wykorzystując metodę CreateProperty.
  • Utworzyć obiekt trwały lub tymczasową kwerendę, wykorzystując metodę CreateQueryDef.
  • Utworzyć i zsynchronizować pełne lub częściowe repliki bazy danych, wykorzystując metody MakeReplica, SynchronizePopulatePartial.
  • Określić alfabetyczny porządek sortowania dla pól znakowych w różnych językach, ustawiając właściwość CollatingOrder.

Obiekt Database w obszar roboczym ODBCDirect

W obszarze roboczym ODBCDirect można
• Uzyskać odwołanie do obiektu Connection, odpowiadającego obiektowi Database, wykorzystując
   właściwość Connection.

Aby utworzyć trwały obiekt Database, który zostanie automatycznie dodany do kolekcji Databases, a następnie zapisany na dysk, należy użyć metody CreateDatabase.

Jeśli wykorzystywana jest metoda OpenDatabase, określenie obiektu DBEngine nie jest konieczne.

Otwarcie bazy danych z tabelami połączonymi nie ustanawia automatycznie łączy do określonych plików zewnętrznych lub do źródła danych ODBC dołączonego do aparatu Microsoft Jet. Należy odwołać się do obiektów TableDef lub Field odpowiedniej tabeli lub otworzyć obiekt Recordset. Jeśli ustanowienie połączeń do tych tabel nie jest możliwe, wystąpi błąd przechwytywalny. Przyczyną może być również brak uprawnień dostępu do bazy danych lub otwarcie bazy danych przez innego użytkownika w trybie wyłączności. W takich przypadkach również wygenerowany zostanie błąd przechwytywalny.

Wykorzystując metodę OpenDatabase, zewnętrzną bazę danych (taką jak FoxPro, dBASE i Paradox) można otworzyć bezpośrednio, zamiast otwierania bazy danych Microsoft Jet, posiadającej łącza do tabel takiej bazy danych.

Uwaga. Nie jest wskazane otwieranie obiektu Database bezpośrednio w połączonym z aparatem Microsoft Jet źródle danych ODBC, takim jak Microsoft SQL Server, ponieważ wydajność kwerendy jest mniejsza niż przy wykorzystywaniu tabel połączonych. Jakkolwiek przy otwieraniu obiektu Database bezpośrednio w zewnętrznym pliku bazy danych ISAM, takiej jak FoxPro, Paradox i innej, problem wydajności kwerendy nie istnieje.

Jeśli wykonana zostanie procedura deklarująca obiekt Database, lokalne obiekty Database zostaną zamknięte razem ze wszystkimi otwartymi obiektami Recordset. Wszystkie nie zapisane zmiany będą utracone, a transakcje nie zakończone będą wycofane. Przed zakończeniem działania procedury, która lokalnie deklaruje te zmienne obiektowe, każda aktywna transakcja i edycja powinny być zakończone, a obiekty RecordsetDatabase zamknięte.

Jeśli w obiekcie Workspace jest wykorzystywana jedna z metod obsługujących transakcje (BeginTrans, CommitTrans lub Rollback), te transakcje zostaną zastosowane do wszystkich baz danych otwartych w tym obiekcie Workspace, z którego był otwarty obiekt Database. Jeśli stosowane transakcje mają być niezależne, należy najpierw otworzyć dodatkowy obiekt Workspace, a następnie otworzyć inny obiekt Database w tym obiekcie Workspace.

Uwaga. To samo źródło danych można otworzyć więcej niż raz, tworząc powtarzające się nazwy w kolekcji Databases. Należy przypisać obiekty Database do zmiennych obiektowych i odwoływać się do nich poprzez nazwę zmiennej.

Słownik użytych terminów.


• baza danych Microsoft Jet
Baza danych utworzona przez aparat bazy danych Microsoft Jet. Plik bazy danych Microsoft Jet ma rozszerzenie nazwy .mdb lub .accdb.
• obszar roboczy Microsoft Jet
Obszar roboczy wykorzystujący aparat bazy danych Microsoft Jet w celu uzyskiwania dostępu do źródła danych. Źródłem danych może być plik bazy danych Microsoft Jet (.mdb), baza danych ODBC, jak np. baza danych Paradox, lub baza danych ISAM.
• obszar roboczy ODBCDirect
Obszar roboczy wykorzystujący technologię ODBCDirect w celu uzyskiwania bezpośredniego dostępu do źródeł danych ODBC, z pominięciem aparatu bazy danych Microsoft Jet.
• kwerenda funkcjonalna
Kwerenda kopiująca lub zmieniająca dane. Do kwerend funkcjonalnych zaliczane są kwerendy dołączające, usuwające, tworzące tabele i aktualizujące. Kwerendy usuwające i aktualizujące zmieniają istniejące dane, a kwerendy dołączające i tworzące tabele kopiują istniejące dane. W przeciwieństwie do omawianych kwerend, kwerendy wybierające zwracają rekordy. Kwerenda przekazująca SQL może być także kwerendą funkcjonalną.
• kwerenda wybierająca
Kwerenda formułująca zapytanie o dane przechowywane w tabelach i zwracająca obiekt Recordset bez dokonywania jakichkolwiek zmian w tych danych. Po pobraniu danych do obiektu Recordset dane te można przejrzeć i wprowadzić zmiany do tabel, z których pochodzą. W przeciwieństwie do kwerend wybierających kwerendy funkcjonalne mogą wprowadzać zmiany w danych, ale nie zwracają rekordów danych.
• obiekt trwały
Obiekt przechowywany w bazie danych, na przykład tabela bazy danych lub obiekt QueryDef. Obiekty Recordset typu zestaw dynamiczny lub utrwalonego nie są zaliczane do obiektów trwałych, ponieważ jeśli są potrzebne, tworzone są w pamięci.
• replika
Kopia bazy danych zawierająca jej tabele, kwerendy, formularze, raporty, makra i moduły. Replika jest elementem zestawu replik i może być synchronizowana z innymi replikami w zestawie. Zmiany danych w replikowanej tabeli jednej repliki są wysyłane i stosowane do innych elementów zestawu replik.
Uwaga. Wzorzec jest także repliką.
• tabela połączona
Tabela z innej bazy danych połączona z bazą danych Microsoft Jet w trakcie operowania na nich, dane połączonych tabel pozostają w zewnętrznej bazie danych. Tabele te dawniej nazywane były tabelami dołączanymi.
• transakcja
Seria zmian wykonanych na danych i schemacie bazy danych. Początek transakcji oznaczany jest instrukcją BeginTrans, zatwierdzenie transakcji wykonywane jest instrukcją CommitTrans, a wszystkie zmiany wykonane od momentu wykonania instrukcji BeginTrans mogą zostać wycofane przez wywołanie instrukcji Rollback.

Stosowanie transakcji nie jest obowiązkowe. Transakcje mogą być zagnieżdżane do pięciu poziomów. Transakcje zwiększają szybkość wykonywania operacji zmieniających dane i dają możliwość łatwego anulowania zmian.

Transakcje są globalne względem obiektu Workspace zawierającego obiekty bazy danych, których dotyczą.
• Menedżer sterowników ODBC
Aplikacja zarządzająca połączeniami pomiędzy źródłami danych ODBC, a sterownikami umożliwiającymi dostęp do nich.
• ciąg połączenia
Ciąg wykorzystywany do zdefiniowania źródła danych dla zewnętrznej bazy danych. Ciąg połączenia jest zwykle przypisywany do właściwości Connect obiektu QueryDef, TableDef, Connection lub Database albo jest podawany jako argument metody OpenDatabase.
• sterownik ODBC
Biblioteka dołączana dynamicznie (dynamic link library, DLL) wykorzystywana przez inne aplikacje (klientów) do połączenia się z określonym źródłem danych ODBC.
• ciąg o długości zerowej
Ciąg nie zawierający żadnych znaków (""). Funkcja Len wywołana dla takiego ciągu zwraca wartość 0.
• źródło danych ODBC dołączone do aparatu Microsoft Jet
Źródło danych ODBC, do którego dostęp jest realizowany z wykorzystaniem obiektów dostępu do danych (DAO) i aparatu bazy danych Microsoft Jet.
• zmienna obiektowa
Zmienna zawierająca odesłanie do obiektu.