Выпущена новая версия nhdbt v1.4.1
Исправлена ошибка при выполнении команд и запросов («внутренняя ошибка»). Добавлены примеры использования.
nhdbt.exe — выполнение SQL запросов
Выполнение SQL запросов в ODBC базе данных из командной строки на примере подключения к dBase в текущем каталоге:
nhdbt.exe "Microsoft dBase driver (*.dbf)" "DBQ=." books-create.sql
На примере подключения к Microsoft Access файлу access-database.mdb:
nhdbt.exe "Microsoft Access driver (*.mdb)" "DBQ=access-database.mdb" books-create.sql
Третий параметр указывает на текстовый файл с SQL запросами. Каждый запрос заканчивается точкой с запятой:
create table Books(BookId int,BookTitle char(250),Author char(128),Publisher char(64),Price real,Year int,PageCount int,Description char(128),ISBN char(64),Subject char(64),RecordDate date); create unique index BookIndex on Books(BookId,ISBN);
Для запросов SELECT программа автоматически форматирует вывод, например:
select Publisher,count(BookId) as BookCount from Books group by Publisher Publisher BookCount ---------------------------------------------------------------- ----------- Окей-книга 278 Омега-Л 367 SmartBook 57 No rows affected. Rows selected: 3. Execution time 0.016s.
Значения BLOB полей (SQL_LONGBINARY, SQL_LONGVARCHAR) не отображаются в этом выводе.
nhdbf.exe — выполнение SQL запросов c BLOB полями
Программа выгружает файлы в BLOB поля или загружает значения BLOB полей в файлы.
INSERT/UPDATE
Запрос INSERT выгружает один файл в BLOB поле:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};DBQ=." "insert into BinaryT(id,path,comment,file) values (1,'binary.dat','test',?)" binary.dat
Запрос UPDATE выгружает один файл в BLOB поле:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};DBQ=%TEMP%" "update MemoTbl set file=? where id=2" memofile2.txt
- Первым параметром команды задаётся строка подключения.
- Вопросительный знак во втором параметре указывает, какое значение должно быть взято из файла.
- Третий параметр содержит имя файла для выгрузки.
SELECT
Запрос SELECT загружает одно значение из BLOB поля в файл с фиксированным именем:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};DBQ=%TEMP%" "select 'memofile1_test.txt',file from MemoTbl where id=1"
Содержимое поля будет сохранено в файл memofile1_test.txt.
Запрос SELECT загружает одно значение из BLOB поля в файл с изменяемым именем:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};DBQ=%TEMP%" "select path,file from MemoTbl where id=1"
Содержимое полей будет сохранено в файл, имя файла будет взято из поля path для id=1.
Запрос SELECT загружает несколько значений из BLOB поля в файлы:
nhdbf.exe "driver={Microsoft dBase driver (*.dbf)};DBQ=%TEMP%" "select path,file from MemoTbl"
Содержимое полей будет сохранено в файлы, имя файла будет взято из поля path для каждой записи.