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

Аннотация

Ни механизм ActiveX Data Objects (ADO), ни механизм ADO .NET не предоставляют возможности сжатия или восстановления базы данных Microsoft Access. Однако, Вы можете решить данную задачу, используя Microsoft Jet OLE DB Provider и Replication Objects (JRO), которые входят в состав пакета Microsoft Data Access Components (MDAC) версии 2.1. ADO .NET позволяет использовать библиотеки COM-объектов с помощью слоя "Interop".



В данной статье описывается способ сжатия базы данных Microsoft Access с помощью Microsoft Visual Basic .NET.




Системные требования

  • Microsoft Visual Basic .NET

  • Microsoft Jet и библиотека Replication Objects 2.1, 2.5 или 2.6

Шаги по созданию примера

  1. Создайте новое консольное приложение Visual Basic .NET.

  2. В окне "Solution Explorer" щелкните правой кнопкой мыши по узлу "References" и выберите пункт "Add Reference".

  3. В окне "Add Reference" перейдите на вкладку "COM" и выберите пункт "Microsoft Jet and Replication Objects 2.I Library". Нажмите кнопку "Select" для добавления компонента и нажмите кнопку "ОК".

  4. Если не найдено соответствующее окружение выбранной библиотеки, будет выдано предупреждение. Нажмите кнопку "Yes" для создания окружения. Ссылки Microsoft ActiveX Data Objects Library (ADODB) и JRO будут добавлены в раздел "References" активного проекта.

  5. В окне "Solution Explorer" щелкните правой кнопкой мыши по модулю "Module1.vb" и выберите пункт "View Code".

  6. Удалите весь код из окна.

  7. Вставьте в окно следующий текст:

    Module Module1

    Sub Main()

    Dim jro As JRO.JetEngine

    jro = New JRO.JetEngine()

    jro.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\nwind.mdb", _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\NewNwind.mdb;Jet OLEDB:Engine Type=5")

    MsgBox("Сжатие базы данных завершено!")
    End Sub

    End Module
  8. Измените пути для .mdb-файлов в разделах "Source" и "Destination" на требуемые. Нажмите клавишу "F5" для запуска проекта.



    Сжатая база данных сохраняется в формате Access 2000 (Jet 4.0). Для установки другого формата обратитесь к разделу "Ссылки".

Особенности использования

Для выполнения сжатия Jet Database Engine требует монопольный доступ к файлу базы данных. Попытка сжать используемую базу данных приведет к ошибке. Данную ошибку можно обработать с помощью инструкций "Try...Catch".



Ссылки

За дополнительной информацией о .NET Framework и слое COM Interop обратитесь к следующим ресурсам:

За дополнительной информацией об использовании ADO и JRO для сжатия базы данных Access обратитесь к следующей статье Microsoft Knowledge Base:



230501 HOWTO: Compact Microsoft Access Database via ADO
Свойства

Номер статьи: 306287 — последний просмотр: 17 сент. 2011 г. — редакция: 1

Отзывы и предложения