Как сжать базу данных Microsoft Access с помощью ADO

Переводы статьи Переводы статьи
Код статьи: 230501
Развернуть все | Свернуть все

В этой статье

Аннотация

Несмотря на то, что спецификации ADO не поддерживает объекты для сжатия базы данных Microsoft Access, эта возможность обеспечивается с помощью расширения ADO: Microsoft Jet OLE DB Provider и репликации объектов (JRO). Эта возможность была реализована в первый раз в поставщика JET OLE DB версии 4.0 (Msjetoledb40.dll) и JRO версии 2.1 (Msjro.dll). Эти DLL-файлы доступны после установки MDAC 2.1. Последнюю версию компонентов MDAC можно загрузить с веб-узлу:
Универсальные данные доступа веб-узла

Дополнительная информация

Сжатие базы данных Access с помощью ADO компоненты MDAC версии 2.1 или более поздней версии должен быть установлен на компьютере. Ниже приведены основные шаги для сжатия базы данных Microsoft Access, с помощью Visual C++ и Visual Basic.

Visual Basic: При сжатии базы данных Microsoft Access через ADO

  1. Visual Basic интегрированной среды разработки, в меню проект выберите команду ссылки.
  2. Microsoft Jet и репликации объектов X.X библиотеки, где (X.X больше или равно 2.1).
  3. Visual Basic, замена путей данных исходной и целевой баз данных, при необходимости добавьте следующие строки кода:
    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"
    					
Примечание: В DAO 3,60 метод RepairDatabase больше не доступен. Выше коде показано использование метода CompactDatabase. Этот метод заменяет метод DAO 3.5 RepairDatabase.

Visual C++: Сжатие базы данных Access через ADO

  1. Помимо директивы # import, Msado15.dll (MDAC2.1), добавьте следующий оператор # import для создания классов-оболочек для JRO .cpp классы (в качестве альтернативы можно создать классы-оболочки более эффективно, используя атрибуты no_implementation и implementation_only инструкцию препроцессора # import):
    #import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace 
    					
  2. Добавьте следующий код (указав собственные пути базы данных источника и назначения) в CPP-файл для сжатия базы данных:
    ...
    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) ;    
    }
    					
Примечание: Тип OLEDB:Engine Jet = 4 предназначен только для файлов MDB формата Jet 3.x. Если это значение, базы данных автоматически обновляется до версии 4.0 (типа OLEDB:Engine Jet = 5). Соответствующие значения для типа OLEDB:Engine Jet см:
Свернуть эту таблицуРазвернуть эту таблицу
Тип OLEDB:Engine JetJet x.x файлы в формате MDB
1JET10
2JET11
3JET2X
4JET3X
5JET4X

Ссылки

Для получения дополнительных сведений см. в статье базы знаний Майкрософт:
230496 Сжатие базы данных Microsoft Access через OLE DB

Свойства

Код статьи: 230501 - Последний отзыв: 16 мая 2012 г. - Revision: 5.0
Ключевые слова: 
kbhowto kbjet kbprovider kbmt KB230501 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:230501
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

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