Экспорт данных из SQL в csv
Введение 
С помощью утилиты ScriptExecuter можно сделать выгрузку данных из базы SQL с нужными критериями в файл формата .csv. Например, по блюдам, ценам, продажам (наличная, безналичная оплаты, возвраты) за определенный промежуток времени.
Для работы утилиты на компьютере должен быть установлен MS SQL.
Для выгрузки необходимо скачать дистрибутив ScriptExecuter. В дистрибутиве находятся:
- ScriptExecuter.exe — само приложение
- Settings.ini — конфигурационный файл для ScriptExecuter
- readme.txt — информационный файл с описанием команд и запросов.
Предварительные настройки утилиты
Чтобы настроить выгрузку для начала необходимо создать связь с базой данных SQL (web.udl).
Создайте файл настройки связи с базой данных MS SQL — *.udl
Чтобы ScriptExecuter.exe отработал корректно, все 3 файла: файл параметров, файл запроса и файл udl создайте в кодировке UTF-16 LE.- Откройте файл и выберите поставщика данных — Microsoft OLE DB Provider for SQL Server
- Далее заполните данные для соединения с сервером SQL и нажмите Проверить соединение.
Создайте SQL запрос (SQLQuery3.sql). Пример простейшего запроса
SQLСоздайте файл list.txt. В нем пропишите параметры из файла readme.txt, по которым будет сделана выгрузка из базы SQL. Например:
CODE
Ниже приведены варианты команд из файла readme.txt:
- tocsv: <путь и формат имени файла для сохранения в формате CSV>
- mail: <почтовый ящик получателя, используется с -tofile>
- frtemplare:<file.fr3> - fr3 шаблон для отправки по почте вместо файлов
- fields: FIELD1=DATEFORMAT;FIELD2
- params: "PARAM1=VALUE1;PARAM2=VALUE 2"
- fdf: <формат даты в имени файла>
- ftf: <формат времени в имени файла>
- setmailpwd: <новый пароль для почты>
- toxml: <путь сохранения>
- xmltmpl: <файл шаблона xml>
- http - отослать по фтп с текущими настройками из settings.ini
- ftp - отослать по фтп с текущими настройками из settings.ini
- ftpdir: <путь в ftp> - отослать по фтп (используется без -ftp!) используя указанный путь
- postrecsql: <sql-file с запросом для каждой отдельной записи результата по завершении операциий>
- postsql: <sql-file с глобальным запросом, который будет выполнен по завершении операций>
- setsftppwd: <новый пароль>
- sethttppwd: <новый пароль>
- sethttpproxypwd: <новый пароль>
- setftppwd: <новый пароль>
- clear: - не наследовать параметры из предыдущих операций
- csvformat: "<символ разделения значений><символ изоляции значений, может быть пустым>"- формат CSV
- csvcp: <0,1,2,...> - кодировка csv-файла, 1 - UNICODE, иначе ANSI, по умолчанию = 1
Запуск утилиты
Перед запуском нужно создать ярлык у приложения ScriptExecuter и в свойствах ярлыка прописать параметр -list:list.txt
После запуска ярлыка в корневом каталоге должен появиться файл query3_res.csv . Также создается папка с логами Log в которой можно посмотреть ход операции, успешность и наличие ошибок.
Выгрузка из SQL на sFTP и из StoreHouse
Данные таким образом можно выгрузить и из StoreHouse.
К статье приложен архив, содержащий 2 файла:
- start.cmd
- 105829.sql.
105829 — это номер заявки, где можно посмотреть подробности.
Использование. Запустите скрипт 105829. Или откройте его как текстовый файл, скопируйте и вставьте в консоль MS SQL.