Jak kompaktować bazy danych Microsoft Access przy użyciu ADO

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 230501
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

Chociaż specyfikacja ADO nie zawiera obiektów kompaktowania baz danych programu Microsoft Access, można osiągnąć tę funkcję przy użyciu rozszerzenia ADO: Microsoft Jet OLE DB Provider i replikacji obiektów JRO (). Możliwość ta została zaimplementowana po raz pierwszy w JET OLE DB Provider w wersji 4.0 (Msjetoledb40.dll) oraz obiektów JRO wersji 2.1 (Msjro.dll). Te pliki DLL są dostępne po zainstalowaniu składników MDAC 2.1. Najnowszą wersję składników MDAC można pobrać z następującej witryny sieci Web:
Uniwersalny witryny sieci Web dostępu danych

Więcej informacji

Kompaktowania bazy danych programu Access przy użyciu obiektu ADO, składników MDAC 2.1 lub nowszej musi być poprawnie zainstalowany na komputerze. Poniżej przedstawiono główne kroki kompaktowania bazy danych programu Microsoft Access przy użyciu języka Visual Basic i Visual C++:

Visual Basic: Kompaktowanie bazy danych Access przez obiekt ADO

  1. W języku Visual Basic IDE na Projekty menu, kliknij przycisk Odwołania.
  2. Dodawanie Biblioteka Microsoft Jet i X.X obiekty replikacji, gdzie (X.X jest większa niż lub równa 2.1).
  3. Dodaj poniższe wiersze kodu języka Visual Basic, zastępowania ścieżek danych źródłowych i docelowych bazy danych, w razie potrzeby:
    Dim jro As jro.JetEngine
    Set jro = New jro.JetEngine
    jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\nwind2.mdb;Jet OLEDB:Database Password=test", _ 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abbc2.mdb;Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test"
    					
UWAGA: W 3,60 DAO metody RepairDatabase nie jest już dostępny. Powyższy kod pokazano sposób użycia metody CompactDatabase. Ta metoda zastępuje metodę DAO 3.5 RepairDatabase.

Visual C++: Kompaktowanie bazy danych Access przez obiekt ADO

  1. Oprócz #import, Msado15.dll (MDAC2.1), należy dodać następującą instrukcję #import w celu wygenerowania klasy otoki dla obiektów JRO do klas cpp (alternatywnie, można generować klasy otoki efektywniej przy użyciu atrybutów no_implementation i implementation_only instrukcja pre-processor #import):
    #import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace 
    					
  2. Dodaj następujący (określając własną ścieżkę bazy danych źródłowych i docelowych) do pliku CPP miejsce kompaktowania bazy danych:
    ...
    try
    {
       IJetEnginePtr jet(__uuidof(JetEngine));
      jet->CompactDatabase( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb;Jet OLEDB:Database Password=test", 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \ 
    "Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test");
    }
    catch(_com_error &e) 
    {       
       ::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;    
    }
    					
UWAGA: Typ aparatu Jet OLEDB:Engine = 4 jest przeznaczona tylko dla plików MDB Jet 3.x. Jeśli ta wartość jest, bazy danych jest automatycznie uaktualniony do wersji 4.0 (Jet OLEDB:Engine typ = 5). Dla typu OLEDB:Engine Jet, zobacz odpowiednie wartości w poniższej tabeli:
Zwiń tę tabelęRozwiń tę tabelę
Typ OLEDB:Engine JetX.x Jet pliki w formacie MDB
1JET10
2JET11
3JET2X
4JET3X
5JET4X

Materiały referencyjne

Aby uzyskać dodatkowe informacje zobacz następujące artykuł z bazy wiedzy Microsoft Knowledge Base:
230496 Kompaktowanie bazy danych Microsoft Access za pomocą OLE DB

Właściwości

Numer ID artykułu: 230501 - Ostatnia weryfikacja: 22 czerwca 2011 - Weryfikacja: 2.0
Słowa kluczowe: 
kbhowto kbjet kbprovider kbmt KB230501 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:230501
Zastrzeżenie dotyczące artykułów z bazy wiedzy o produktach wycofanych
Ten artykuł dotyczy produktów, dla których firma Microsoft nie oferuje już pomocy technicznej. Dlatego jest on oferowany w obecnej wersji i nie będzie już aktualizowany.

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com