
- •Пример Консольной утилиты для управления базами ms Access
- •Что такое BatchAccess
- •Требования
- •Как это работает
- •Прогон скрипта
- •Как пользоваться Формат вызова
- •Опции-режимы
- •Опции-модификаторы
- •Примеры вызова
- •Мета-операторы
- •Примеры использования
- •Практическая часть
- •1.Код студента(счетчик, поле первичного ключа).
- •1.Код студента(счетчик, поле первичного ключа)
- •1.Код студента(счетчик, поле первичного ключа)
- •Учебная литература
Примеры вызова
Создание базы данных 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 |
Исключение |