Skip to content

Cichlidae/WF-SyncTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQL Shell Set v1.2.RC6
-----------------------

Набор консольных win-приложений, позволяющий исполнять 
SQL-запросы к различным базам данных.
Для доступа к данным использует Microsoft ADO и JDBC.


I. Командная строка. Доступ к данным через ADO.

    Перечень доступных команд в command line можно узнать, набрав:
	> ado-sql-shell.exe -?
	
	или	
	> ado-sql-shell.exe -help


II. Командная строка. Доступ к данным через JDBC.

	Перечень доступных команд в command line можно узнать, набрав:
	> jdbc-sql-shell.exe -?
	
	или	
	> jdbc-sql-shell.exe -help


III. Осуществление запросов к различным БД.

     А) Visual FoxPro.
	 
		> ado-sql-shell.exe -v fvp 'd:\db\base.dbc'
		> jdbc-sql-shell.exe -v fvp 'd:\db\base.dbc'	

		* Microsoft ODBC драйвер не умеет выполнять запросы
		INSERT INTO...SELECT, поэтому, если это ваш случай, 
		используйте только ADO-коннект.
		
		* У OLE(ADO)v9 драйвера также есть ряд особенностей,
		которые перечислены в файле vfpole_bugs.txt
		
	 Б) XBase.

        > jdbc-sql-shell.exe -v xbase 'd:\db\'	 

     	* Кроме файлов *.dbf, драйвер может работать и
		с другими хранилищами, например, zip. Подробнее
		в документации к HXTT DBF driver.
	
	 В) Excel.
	 
		> ado-sql-shell.exe -v excel 'd:\file.xlsx'

		* CRUD-запросы пока не тестировались.
		
		* Может работать как с *.xlsx, так и со старыми *.xls	
		
	 Г) SQLite.

        > jdbc-sql-shell.exe -v sqlite 'd:\db\baza.db'

		* пока не тестировалось.

	 Д) MySQL.

		> jdbc-sql-shell.exe -v mysql 'localhost:3306/dbname' -u 'login' -p 'password'
		
		* пока не тестировалось.
		
	 Е) SQL Server.

		> ado-sql-shell.exe -v mssql -wid 'YOUR_ID' 'Initial Catalog'
		
		* пока не тестировалось.
	
IV. Ввод SQL-запросов:

	На входе STD.IN принимает полную строку SQL-запроса.
	Поэтому, в запросе не должно быть переводов строки.

	> select top 5 * from sclad_mlabel order by name;
	> select t1.* from sclad_t1 as t1 inner join sclad_t2 as t2 on t1.key=t2.key where t1.key <> '';
	> select t.* from d:/test.dbc!sclad_t as t;
	> select `ALL$`.KlassWrk from `ALL$`;
	
	Формат запроса зависит от БД, к которой подключение.
	Последовательная пакетная обработка запросов - примечание A.	

V. Вывод результатов запросов:

	Стандартный вывод результатов запросов приложение осуществляет в консоль STD.OUT.

	> ado-sql-shell.exe -v vfp 'd:\test.dbc' > result.txt

	Однако, есть возможность вывести результирующие таблицы,
	полученные через SELECT-запросы, в Excel-файл (*.xlsx).

	> ado-sql-shell.exe -v -xlsx 'd:\result.xlsx' vfp 'd:\test.dbc'

	Если excel-файл уже существует, результат запроса добавляется 
	в него как новый лист по порядку. Но если необходимо 
	пересоздать файл заново, нужно использовать опцию "-rewrite".
	
	> ado-sql-shell.exe -v -rewrite -xlsx 'd:\result.xlsx' vfp 'd:\test.dbc'
		
	Результат каждого SELECT-запроса помещается в отдельный лист,
	наименование которого можно задать (по желанию) 
	через предваряющий SQL-комментарий в теле запроса. Результирующие
	таблицы форматируются для удобства последующего анализа
	(заголовки таблиц, раскраска ячеек, фильтры по каждому столбцу).	

	Задание заголовка результирующего excel-листа:
	
	> --TNVED-- select grup, nnum, name, tnved from sclad_mlabel;
	
	Комментарий всегда пишется перед самим запросом!
	В теле запроса игнорируется или выдает ошибку в зависимости от БД.		
	
	Если какой-то результат запроса необходимо исключить из вывода
	вообще, нужно воспользоваться таким предваряющим SQL-комментарием:
	
	> --!-- select count(*) from table;

VI. Работа с кириллицей:

	Кириллические символы при работе с консолью всегда обрабатываются 
	приложением в кодировке UTF-8. Поэтому, необходимо, чтобы
	консоль была настроена на UTF-8.

	Внутреннее взаимодействие с драйвером БД и Excel осуществляется
	в кодировке, установленной для этих программ.
	
	* JDBC: для соединений с VFP и xBase кодировка не определяется
	  автоматически, поэтому она зашита в программу как "cp1251". 

VII.  Технические требования:

	1. JRE 6+.
		* для коннектов к VFP только 32-bit.
	
	Дальнейшее опционально, в засисимости от типа используемых 
	коннектов и способа вывода результатов.
	
	2. Jacob*.dll 32-bit (ADO-bridge) в текущей директории приложения. 
	
	3. VFPOLEDB.dll OLE драйвер (v9), установленный в Windows.
	
	4. Установленные в системе Excel(2010)-драйвера.
	
	5. excel-poi-plugin.jar в текущей директории приложения.

	6. HXTT DBF driver версии 4 и выше в текущей директории приложения.
	
	7. MySQL jdbc driver версии, корреспондирующей с версия БД
	   в текущей директории приложения.

	8. SQLite driver в текущей директории приложения.

Примечание А.

Чтобы осуществить пакетную обработку запросов, нужно воспользоваться скриптом
flatten-query.sh, предварительно записав все SQL-запросы в один файл и
отделив их друг от друга не менее чем двумя последовательными переводами строк.
Тогда вызов программы будет таким:

> cat batch.sql | flatten-query.sh | ado-sql-shell.exe -v vfp 'd:\test.dbc'

Примечание Б.

Дополнительные утилиты:

1. guid-generator.exe
   Генерирует различные виды GUID и UUID, в том числе и
   кириллический guid22, использующийся в системе БЭСТ.
   
2. md5-checksum.exe
   Проверка контрольной суммы файлов.

3. mail-notifier.exe
   Уведомление по e-mail через службу GMAIL.   

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages