Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
105112_Kondratchik.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
813.14 Кб
Скачать

Примеры вызова

Создание базы данных SuperPuper.mdb и выполнение скрипта structure.sql:

BatchAccess SuperPuper.mdb structure.sql -c

Выполнение скрипта data.sql над базой данных SuperPuper.mdb:

BatchAccess -quiet SuperPuper.mdb data.sql

Восстановление скрипта структуры базы данных SuperPuper.mdb в файл structure.sql:

BatchAccess -r SuperPuper.mdb structure.sql

Получение скрипта данных для базы данных SuperPuper.mdb в файл data.sql:

BatchAccess SuperPuper.mdb -d data.sql

Импорт данных в SuperPuper.mdb в таблицу Contact из файла contact.csv:

BatchAccess SuperPuper.mdb -iContact contact.csv

Экспорт данных из таблицы Contact в файл contact.csv:

BatchAccess SuperPuper.mdb -eContact contact.csv

Получение скрипта перехода от db1.mdb к db2.mdb:

BatchAccess db2.mdb -mdb1.mdb compare.sql

Мета-операторы

В целом, BatchAccess позволяет сделать многое. Но его возможности опираются на Jet SQL, возможностей которого часто оказывается недостаточно. Например, используя только Jet SQL вы не сможете подцепить к базе данных внешнюю таблицу, или сжать/восстановить базу данных.

Когда нам понадобились эти возможности, мы решили расширить Jet SQL за счет мета-операторов. Суть в том что мы ввели ряд собственных операторов, которые не передаются на исполнение в Jet, а выполняются самим BatchAccess.

Все мета-операторы начинаются с символа решетки — <#>. Так же как и для обычных операторов, концом оператора считается символ точки с запятой, стоящий в конце строки.

Поддерживаются следующие мета-операторы:

#COMPACT DATABASE;

Сжатие/восстановление базы данных.

#LINK TABLE <TableName> DATABASE <DatabasePath> [REFERENCES <RemoteTableName>] [PROVIDER <ProviderString>];

Подключение к базе данных внешней таблицы TableName из файла базы данных DatabasePath. Если DatabasePath содержит спецсимволы, заключите путь в квадратные скобки. Если в данной базе таблица должна иметь другое имя, укажите RemoteTableName. Параметр ProviderString позволяет подключать таблицы форматов, отличных от MDB — например, лист Excel или таблицу dBase.

#UPDATE LINK <TableName> DATABASE <DatabasePath>;

Обновление связи на внешунюю таблицу TableName — для нее задается база данных DatabasePath. Если DatabasePath содержит спецсимволы, заключите путь в квадратные скобки.

#IMPORT TABLE <TableName> FROM <CsvFilePath>;

Работает аналогично ключу -iTABLENAME: импортирует данные в заданную таблицу из заданного CSV-файла.

#INCLUDE <ScriptFile>;

Выполнение SQL-скрипта из заданного файла.

При появлении цикла на метаоператорах #INCLUDE, т.е. при включении через этот оператор того же самого файла — произойдет уход в рекурсию с переполнением стека.

ErrorLevel

Код завершения программы (ErrorLevel) бывает таким:

0

Все в порядке

1

При выполнении были проблемы — выдавались предупреждения

2

Проблемы при файловых операциях

3

Ошибки в командной строке

4

Исключение

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]