Тема / Topic: как я прикручивал tm к ms sql server
stepagrus
Forum Haunter / Завсегдатай форума
Участник № / Member № 3589
отправлено / posted
встала задача: прикрутить SQL Server к ТМ, для того чтобы недостающие данные для генерируемого отчета брать из БД.
После нескольких попыток это удалось сделать, всё описано в справке.
но случилась одна проблема: если делать SELECT и в условии WHERE фигурирет дата:
code:
WHERE Table.Date > #DateFrom#
запрос не выполняется. Причина: Дата/время передается числовым значением. в TM дата/время имеет формат UnixTime (число секнуд с 1.1.1970). MS SQL Server это число воспринимает как количество дней с 1.1.1900 (целая часть числа).
переконвертировать одно число в другое средствами ST в TM практически (на самом деле теоретически, т.к. я не проверял) ) невозможно, т.к. нужно учитывать високосные года.
спустя какое то время решение было найдено: конверитровать дату в строку вида 'число.месяц.ггод час.минута.секунда' с помощью программы на Техно_ST и передать её в Запрос_к_СУБД как строку.
В самом запросе вместо:
code:
WHERE Main_table.Date > #Date_from#
написать:
code:
WHERE Main_table.Date > Convert(DATETIME, '#Date_from#' ,104)
чтобы эта команда отработала в браузере запросов нужно убрать одинарные кавычки ' ' с переменной, т.к. TM в режиме эмуляции не понимает эти кавычки, хотя запрос в работающем RTM работает только с кавычками.
создал эту тему потому, что я сам много времени потерял на эксперименты с этой фичей. возможно кому нибудь это поможет сэкономить своё время
Сообщения / Posts 136 | Из / From: РФ
| IP / IP: IP адрес / IP address |
stepagrus
Forum Haunter / Завсегдатай форума
Участник № / Member № 3589