Командная строка nhdbt

Варианты запуска 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"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *