Восстановление базы данных

Метод RepairDatabase проверяет все страницы базы данных на правильность связей, проверяет системные таблицы и все индексы. После успешного завершения база данных считается "надежной", а страницы, которые не могут быть спасены (как недействительные ссылки на другие страницы) уничтожаются. У данного метода только один аргумент

DBEngine.RepairDatabase "MyBase.mdb"

После восстановления база данных может увеличиться в размерах, т.к. процесс создания индексов может оставить некоторые удаленные страницы в базе. Поэтому после выполнения операции восстановления необходимо выполнить CompactDatabase для уничтожения неиспользуемых страниц.

Еще один способ получения информации о структуре базы данных основан на использовании конструкции OpenSchema:

Набор записей = соединение.OpenSchema (QueryType, Criteria, SchemaID)

QueryType Criteria

______________________________________________________________________

adSchemaTables TABLE_CATALOG

TABLE_SCHEMA

TABLE_NAME

TABLE_TYPE

Пример получения списка всех таблиц и запросов

Set rs = cn.OpenSchema(adSchemaTables)

While Not rs.EOF

Debug.Print rs!TABLE_NAME

rs.MoveNext

Wend

Пример получения списка только таблиц

Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table")

Для получения списка только таблиц в базе данных Pubs Microsoft SQL Server, используйте следующую команду:

Set rs = cn.OpenSchema(adSchemaTables, Array("Pubs", Empty, Empty, "Table")

Для получения списка полей в таблице можно использовать adSchemaColumns

QueryType Criteria

________________________________________________________________

adSchemaColumns TABLE_CATALOG

TABLE_SCHEMA

TABLE_NAME

COLUMN_NAME

Set rs = cn.OpenSchema(adSchemaColumns,Array(Empty, Empty, "Employees")

While Not rs.EOF

Debug.Print rs!COLUMN_NAME

rs.MoveNext

Wend

Для получения списка имен индексов в таблице adSchemaIndexes

QueryType Criteria

_________________________________________________________

adSchemaIndexes TABLE_CATALOG

TABLE_SCHEMA

INDEX_NAME

TYPE

TABLE_NAME

Set rs = cn.OpenSchema(adSchemaIndexes, Array(Empty, Empty, Empty, Empty, "Employees")

While Not rs.EOF

Debug.Print rs!INDEX_NAME

rs.MoveNext

Wend

Чтобы просмотреть список индексов в таблице Authors базы данных Pubs SQL Server с использованием конструкции adSchemaIndexes, можно воспользоваться следующей записью:

Set rs = cn.OpenSchema(adSchemaIndexes, Array("Pubs", "dbo", Empty, Empty, "Authors")

Ниже приведены примеры нескольких программ, работающих со структурой БД

'Открываем определенное соединение connection.

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: