@SLJ

Как правильно выполнить sql запрос при помощи bat файла?

Доброго времени суток.
Имеется задача: запускать ежедневно sql запрос при помощи bat файла. Сервер firebird 2.1на localhost. Использую встроенную утилиту isql. Пытаюсь запустить bat файл, но возвращает пустые результаты, через cmd этот же запрос работает. В чем допущена ошибка? Может через что-то другое необходимо делать запрос? C PowerShell не знаком.

set isql="C:\\Program Files(x86)\\FireBird\\FireBird_2_1\\BIN\\isql.exe"

CONNECT '127.0.0.1/3080:E:\Torgovlya54\MAIN.GDB' USER 'sysdba' PASSWORD 'masterkey';

SELECT C.CODE AS "Табельный", C.NAME AS "Ф.И.О.", T.TRANZDATE AS "Дата", max(T.TRANZTIME) AS "Время", T.INFOSTR AS "Карта" sum(T.SUMM) AS "Сумма" FROM DOCUMENT D LEFT JOIN TRANZT T ON D.ID = T.DOCUMENTID JOIN CLIENT C ON D.CLIENTID = C.ID WHERE T.TRANZDATE = cast('now' as date) and D.STATE = 1 AND D.ISFISCAL = 1 AND D.CLIENTID >=0 AND T.TRANZTYPE = '36' GROUP BY C.CODE, C.NAME, T.TRANZDATE, T.INFOSTR;

set outputfile=outputfile.txt
echo %mydt% >> %outputfile%
  • Вопрос задан
  • 3554 просмотра
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker
Программист, энтузиаст
Попробуйте так:
set isql="C:\\Program Files(x86)\\FireBird\\FireBird_2_1\\BIN\\isql.exe"
echo ^
SELECT C.CODE AS "Табельный", C.NAME AS "Ф.И.О.", T.TRANZDATE AS "Дата", max(T.TRANZTIME) AS "Время", T.INFOSTR AS "Карта" sum(T.SUMM) AS "Сумма" FROM DOCUMENT D LEFT JOIN TRANZT T ON D.ID = T.DOCUMENTID JOIN CLIENT C ON D.CLIENTID = C.ID WHERE T.TRANZDATE = cast('now' as date) and D.STATE = 1 AND D.ISFISCAL = 1 AND D.CLIENTID >=0 AND T.TRANZTYPE = '36' GROUP BY C.CODE, C.NAME, T.TRANZDATE, T.INFOSTR; ^
| %isql% 127.0.0.1/3050:E:\Torgovlya54\MAIN.GDB sysdba masterkey > outputfile.txt

Каждая строчка, передаваемая isql должна закачиваться "^", чтобы попасть в одну команду с echo и передаться на вход isql.
Весь выхлоп isql направлен в текстовый файл.
У меня винды под рукой нет и файрбёрда тем более. так что пробуйте сами. Пишите если не получится -- будем еще смотреть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы