Командная строка nhdbt
- Варианты запуска nhdbt
- Все параметры командной строки
- Терминальный режим
- Чтение и запись файлов с nhdbf
- Параметры запуска nhdbt до версии 1.4
Варианты запуска nhdbt
Подключение к базе данных в режиме терминала
nhdbt.exe [-cs:<строка подключения>] [-do] [-cd:<разделитель столбцов>]
Программа подключается к базе данных по указанной строке подключения и приглашает пользователя к вводу SQL запросов (приглашение меняется на SQL>). Для выхода из программы необходимо ввести команду exit.
Если строка подключения не задана, то программа переходит в режиме терминала без подключения к базе данных. Подключиться к базе данных в режиме терминала можно с помощью команд:
connect "<строка подключения>"
– соединение с базой данных по строке подключенияconnect driver "<название ODBC драйвера>" "<параметры драйвера>"
– подключение с определённым драйверомconnect datasource "<источник данных ODBC>"
— подключение к настроенному источнику данных ODBC
Этот режим запуска требует ручного завершения и не подходит для пакетных файлов bat/cmd.
Пример использования nhdbt в режиме терминала:
Подключение к базе данных и выполнение SQL запроса из командной строки
Команда задаёт подключение к базе данных и выполняемые SQL запросы:
nhdbt.exe -cs:<строка подключения> [-do] [-cd:<разделитель столбцов>] -q:<SQL запросы>
Программа подключается к базе данных, выполняет запросы, отключается от базы данных и завершается. Этот вариант запуска подходит для пакетных файлов bat/cmd.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запросы выполняются последовательно.
Подключение к базе данных и выполнение SQL запросов из файла
Команда задаёт подключение к базе данных и файл с SQL запросами:
nhdbt.exe -cs:<строка подключения> [-do] [-cd:<разделитель столбцов>] -qf:<имя файла>[,<кодовая страница>]
Программа считывает запросы из файла, подключается к базе данных, выполняет запросы, отключается от базы данных и завершается. Этот вариант запуска подходит для пакетных файлов bat/cmd.
Если кодовая страница не указана, программа пытается определить её автоматически. UCS-2, UTF-8, UTF-16 определяются по содержанию и по BOM. OEM кодировка автоматически не определяется.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запросы выполняются последовательно.
Подключение к базе данных и выполнение SQL запроса из входного потока stdin
nhdbt.exe -cs:<строка подключения> [-do] [-cd:<разделитель столбцов>] -qi
Программа подключается к базе данных, затем читает входной поток stdin – как только встречается SQL запрос, выполняет его. Когда входной поток закрывается, программа отключается от базы данных и завершается. Этот вариант запуска подходит для пакетных файлов bat/cmd.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запросы выполняются последовательно.
Все параметры командной строки
-cs:<строка подключения>
-connection_string:<строка подключения>
Строка подключения к базе данных. Параметр добавлен в v1.5.0.5.
Содержимое строки зависит от драйвера. Драйвер должен быть установлен на компьютере. В современных версиях Windows предустановлены ODBC драйверы: SQL Server, Microsoft Access, Microsoft DBase, Microsoft Text. Для баз данных Oracle, PostgreSql, MySql необходимо устанавливать ODBC драйвер с сайта разработчика.
Пример строки подключения Microsoft dBase driver (*.dbf) (подробнее см. Microsoft dBase драйвер):
Driver={Microsoft dBase driver (*.dbf)};DBQ=.
-do
-data_only
При выполнении SQL запросов на выборку данных (SELECT) выводить только данные (без дублирования текста запроса, без заголовков и пр). Параметр добавлен в v1.5.0.5.
По умолчанию выводятся названия столбцов, подчёркнутые дефисами.
Этот параметр предназначен для вывода данных, которые будут обработаны другими программами.
-cd:<разделитель столбцов>
-column_delimiter:<разделитель столбцов>
Символ для разделения столбцов данных. Параметр добавлен в v1.5.0.5.
По умолчанию столбцы выравниваются пробелами. Для автоматической обработки другими программами можно указать разделение полей каким-то другим символом, например, запятой -cd:","
или точкой с запятой -cd:";"
. Чтобы задать символ табуляции, можно написать -cd:"\t"
.
-q:<SQL запросы>
-query:<SQL запросы>
Задаёт SQL запросы. Параметр добавлен в v1.5.0.5.
Запросы разделяются точкой с запятой (;). Запросы выполняются последовательно.
Допустимо указывать любые запросы, поддерживаемые базой данных, т.е. не только DML (Data Manipulation Language, т.е. SELECT/INSERT/UPDATE/DELETE), но и DDL (Data Definition Language, CREATE TABLE/INDEX и т.д.), DCL (Data Control Language), так как программа просто передаёт запросы в базу данных.
Загрузка или выгрузка файлов в этой версии не поддерживается (для этой цели используется отдельная утилита nhdbf.exe).
-qf:<имя файла>[,<кодовая страница>]
-query_from_file:<имя файла>[,<кодовая страница>]
Задаёт файл с SQL запросами. Параметр добавлен в v1.5.0.5.
Если кодовая страница не указана, программа пытается определить её автоматически. UCS-2, UTF-8, UTF-16 определяются по соджержанию и по BOM. OEM кодировка автоматически не определяется.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запрос может быть разнесён на несколько строк. Запросы выполняются последовательно.
Допустимо указывать любые запросы, поддерживаемые базой данных, т.е. не только DML (Data Manipulation Language, т.е. SELECT/INSERT/UPDATE/DELETE), но и DDL (Data Definition Language, CREATE TABLE/INDEX и т.д.), DCL (Data Control Language), так как программа просто передаёт запросы в базу данных.
Загрузка или выгрузка файлов в этой версии не поддерживается (для этой цели используется отдельная утилита nhdbf.exe).
-qi
-query_from_stdin
Указывает считывание SQL запросов из стандартного потока stdin. Параметр добавлен в v1.5.0.5.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запросы выполняются последовательно.
Допустимо указывать любые запросы, поддерживаемые базой данных, т.е. не только DML (Data Manipulation Language, т.е. SELECT/INSERT/UPDATE/DELETE), но и DDL (Data Definition Language, CREATE TABLE/INDEX и т.д.), DCL (Data Control Language), так как программа просто передаёт запросы в базу данных.
Загрузка или выгрузка файлов в этой версии не поддерживается (для этой цели используется отдельная утилита nhdbf.exe).
Терминальный режим
В терминальном режиме показывается приглашение — угловая скобка. Если программа подключена к базе данных, то перед скобкой показывается текст SQL, т.е. можно вводить команды SQL.
Команды терминального режима:
CONNECT Соединение с базой данных. Ранее установленное соединение с базой данных будет разорвано. CONNECT DRIVER <драйвер ODBC> <параметры> Подключение к базе данных по названию драйвера и списку параметров (DBQ, UID и т.п.). Соединение не требует наличия настроенного источника данных. CONNECT DATASOURCE <источник данных> Подключение к базе данных по настроенному источнику данных. DISCONNECT Отключение от базы данных. Параметров нет. EXIT Завершение работы. Параметров нет. HELP Вывод справки по поддерживаемым командам терминала. HELP <команда> Вывод справки по определенной команде. LIST Перечисление объектов LIST DRIVERS Перечисление установленных драйверов ODBC LIST DATASOURCES Перечисление настроенных источников данных ODBC
Чтение и запись файлов с nhdbf
Возможность чтения/записи файлов в поля SQL_LONGVARBINARY вынесена в отдельную программу nhdbf.exe (входит в комплект nhdbt).
Запись файла
Параметры запуска программы для записи файла в поле базы данных:
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дключения и приглашает пользователя к вводу SQL запросов (приглашение меняется на SQL>). Для выхода из программы необходимо ввести команду exit.
Если строка подключения не задана, то программа переходит в режиме терминала без подключения к базе данных. Подключиться к базе данных в режиме терминала можно с помощью команд:
connect "<строка подключения>"
– соединение с базой данных по строке подключенияconnect driver "<название ODBC драйвера>" "<параметры драйвера>"
– подключение с определённым драйверомconnect datasource "<источник данных ODBC>"
— подключение к настроенному источнику данных ODBC
Этот режим запуска требует ручного завершения и не подходит для пакетных файлов bat/cmd.
Пример использования nhdbt в режиме терминала:
Подключение к базе данных и выполнение SQL запроса из командной строки
Команда задаёт подключение к базе данных и выполняемые SQL запросы:
nhdbt.exe -cs:<строка подключения> [-do] [-cd:<разделитель столбцов>] -q:<SQL запросы>
Программа подключается к базе данных, выполняет запросы, отключается от базы данных и завершается. Этот вариант запуска подходит для пакетных файлов bat/cmd.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запросы выполняются последовательно.
Подключение к базе данных и выполнение SQL запросов из файла
Команда задаёт подключение к базе данных и файл с SQL запросами:
nhdbt.exe -cs:<строка подключения> [-do] [-cd:<разделитель столбцов>] -qf:<имя файла>[,<кодовая страница>]
Программа считывает запросы из файла, подключается к базе данных, выполняет запросы, отключается от базы данных и завершается. Этот вариант запуска подходит для пакетных файлов bat/cmd.
Если кодовая страница не указана, программа пытается определить её автоматически. UCS-2, UTF-8, UTF-16 определяются по соджержанию и по BOM. OEM кодировка автоматически не определяется.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запросы выполняются последовательно.
Подключение к базе данных и выполнение SQL запроса из входного потока stdin
nhdbt.exe -cs:<строка подключения> [-do] [-cd:<разделитель столбцов>] -qi
Программа подключается к базе данных, затем читает входной поток stdin – как только встречается SQL запрос, выполняет его. Когда входной поток закрывается, программа отключается от базы данных и завершается. Этот вариант запуска подходит для пакетных файлов bat/cmd.
SQL запросов может быть несколько, они разделяются точкой с запятой. Запросы выполняются последовательно.
Параметры запуска nhdbt до версии 1.4
Этот вариант запуска был основным для nhdbt до версии 1.4. Начиная с версии 1.5.0, он также поддерживается в целях сохранения работы ранее созданных bat файлов.
Параметры запуска позволяют указать 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"