This is topic как я прикручивал tm к ms sql server in forum SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/40/t/000075.html

Posted by stepan (Участник № / Member № 3589) on :
 
встала задача: прикрутить 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 работает только с кавычками.

создал эту тему потому, что я сам много времени потерял на эксперименты с этой фичей. возможно кому нибудь это поможет сэкономить своё время [Пдмигивание / Wink]
 
Posted by stepan (Участник № / Member № 3589) on :
 
да. скорее всего продолжение следует...
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2