Программа nhdbt представляет собой клиента к ODBC-совместимым базам данных: позволяет выполнять SQL запросы и отображает результаты.
Программа предназначена, в основном, для использования в командных
файлах, так как все параметры, в том числе и SQL запрос, можно задать в
параметрах командной строки.
Тем не менее, для ввода запросов вручную в программе имеется терминальный
режим, в котором можно вводить команды и SQL запросы вручную.
Программа подключается к любой базе данных, имеющей драйвер ODBC, в том числе dBase, файлам Microsoft Office - Excel и Access, СУБД MS SQL Server, Oracle.
Параметры запуска позволяют указать ODBC базу данных и файл запросов.
nhdbt [dataonly] [cs:<разделитель_столбцов>] [<драйвер_ODBC>] [<параметры_подключения>] [<файл_запросов_SQL>] dataonly Выводить только данные, выбранные из таблиц, и пропускать служебные данные (текст запроса, названия столбцов, время выполнения, число строк, результат выполнения). Режим предназначен для автоматического разбора данных средствами командных файлов. cs:<разделитель_столбцов> Использовать указанный символ в качестве разделителя столбцов. Если не задан, столбцы выравниваются по ширине и разделяются пробелами. [<драйвер_ODBC>] Полное название драйвера ODBC. Если содержит пробелы, должно быть заключено в кавычки. [<параметры_подключения>] Список параметров подключения, разделенных точкой с запятой. Должен быть заключен в кавычки, если содержит пробелы. Часто используемые параметры (точное значение зависит от базы данных): DBQ путь к папке или файлу базы данных ReadOnly доступ только на чтение Exclusive запрос исключительного доступа к базе данных SERVER сетевое имя сервера БД или (LOCAL) - [SQL Server] UID имя пользователя PWD пароль пользователя [<файл_запросов_SQL>] Путь и имя файла запроса. Файл может содержать один или несколько запросов. Каждый запрос должен заканчиватся точкой с запятой.
Если при запуске указаны все параметры, то программа подключается к базе данных, выполняет запрос(ы), отключается от базы данных и завершает свою работу.
Если при запуске указаны все параметры, кроме файла с запросами SQL, то программа переходит в терминальный режим, подключается к базе данных и ожидает ввода запроса SQL или команды терминального режима (см. ниже).
Если при запуске не указана база данных, то программа переходит в терминальный режим и ожидает ввода команды терминального режима (см. ниже).
Примеры запуска:
nhdbt dataonly cs:, "Microsoft dBase driver (*.dbf)" "DBQ=C:\Database" q1.sql nhdbt "Microsoft Access driver (*.mdb)" "DBQ=C:\Database\db1.mdb;UID=admin;PWD=1234"
В терминальном режиме показывается приглашение - угловая скобка. Если программа подключена к базе данных, то перед скобкой показывается текст SQL, т.е. можно вводить команды SQL.
Команды терминального режима:
CONNECT Соединение с базой данных. Ранее установленное соединение с базой данных будет разорвано. CONNECT DRIVER <драйвер ODBC> <параметры> Подключение к базе данных по названию драйвера и списку параметров (DBQ, UID и т.п.). Соединение не требует наличия настроенного источника данных. CONNECT DS <источник данных> Подключение к базе данных по настроенному источнику данных. DISCONNECT Отключение от базы данных. Параметров нет. EXIT Завершение работы. Параметров нет. HELP Вывод справки по поддерживаемым командам терминала. HELP <команда> Вывод справки по определенной команде. LIST Перечисление объектов LIST DRIVERS Перечисление установленных драйверов ODBC LIST DATASOURCES Перечисление настроенных источников данных ODBC
Возможность чтения/записи файлов в поля SQL_LONGVARBINARY вынесена в отдельную программу nhdbf.exe.
Параметры запуска программы для записи файла в поле базы данных:
nhdbf.exe <строка подключения> <запрос insert/update> <путь и имя файла> <строка подключения> Включает ODBC драйвер и его параметры, например: "driver={Microsoft dBase driver (*.dbf)};dbq=C:\Temp" <запрос insert/update> SQL запрос на добавление или обновление данных, вместо значения поля SQL_LONGVARBINARY следует поставить знак вопроса (?), например: "insert into Files(id,file) values (1,?)" <путь и имя файла> Путь и имя файла для записи в базу данных.Пример добавления файла C:\Temp\file.dat:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};dbq=C:\Database" "insert into Files(id,file) values (1,?)" C:\Temp\file.datПример обновления существующей записи другим файлом C:\Temp\file12.dat:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};dbq=C:\Database" "update Files set file=? where id=1" C:\Temp\file12.datВ одном сеансе может быть добавлен или обновлён один файл.
Параметры запуска программы для чтения поля в файл:
nhdbf.exe <строка подключения> <запрос select> <строка подключения> Включает ODBC драйвер и его параметры, например: "driver={Microsoft dBase driver (*.dbf)};dbq=C:\Temp" <запрос select> SQL запрос на считывание данных. Первый столбец должен содержать поле SQL_LONGVARBINARY, второй - выражение, задающее путь и имя файла. Выражение может быть фиксированным, например: "select file,'file.dat' from Files where id=152" или вычисляемым из полей записи, например, для считывания фотографий сотрудников в файлы с названиями по именам сотрудников: "select Image,LastName+'.'+FirstName+'.jpg' from Employees"Пример считывания одного поля одной записи в файл C:\Temp\file.dat:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};dbq=C:\Database" "select file,'C:\Temp\file.dat' from Files where id=1"Пример считывания нескольких записей - фотографий сотрудников отдела с индексом 4:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};dbq=C:\Database" "select Image,LastName+'.'+FirstName+'.jpg' from Employees where Dept=4"
Это описание относится к программе nhdbt версии 1.3.0.
Примеры использования и обновления находятся на
странице программы.
Программа работает под Windows XP SP2. Разрешается свободное некоммерческое
распространение программы. Обратная связь на
форуме программы.