This is topic Однократное выполнение канала Call in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


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

Posted by Hip67 (Участник № / Member № 4427) on :
 
Здравствуйте! возможно простейший вопрос, но подскажите, как выполнить однократное выполнение канала Call? конкретно, необходимо, по факту возникновения определенного события, записывать значения в БД. событие отслеживаю программой с циклом в 1 сек. после возникновения события программа вызывает канал Call с БД и записываются сотни значений с периодичностью (насколько я понял) канала вызова, но надо выполнить всего одну запись, после чего дальше отслеживать появление события.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
SQL-запрос выполняется всегда однократно.
Собственно вызов канала CALL.SQL состоит в передаче в него номера запроса из привязанного шаблона. После выполнения запроса значение канала сбрасывается.
Новый запрос будет реализован только при подаче в этот канал номера запроса.
При запросы большого объема могут возникнуть проблемы с ограничениями на длину SQL-запроса в конкретном ODBC-драйвере.
 
Posted by Hip67 (Участник № / Member № 4427) on :
 
хм. тогда получается, что это не SQL-запрос выполняется несколько раз, а программа вызывает несколько SQL-запросов с определенной периодичностью, заданной в канале вызова программы?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Выходит, так.
 
Posted by Hip67 (Участник № / Member № 4427) on :
 
выяснил как это совершить. использую программу LD, которая по положительному переходу события отправляет на вход вызова БД единицу в 1 такт. но теперь появилась другая проблема: в канал Time приходят секунды, он в реальном атрибуте переводит их в час:мин:сек. как это значение записать в базу в таком же виде?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Вы зададите в SQL-запросе аргумент типа Date & Time и свяжете его с атрибутом РЕАЛЬНОЕ канала TIME, то это значение в формате строки и будет передано в БД.
 
Posted by Hip67 (Участник № / Member № 4427) on :
 
дело в том, что аргумент типа Date & Time связанный с реальным атрибутом канала TIME передает в БД следующее "1970-01-01 03:02:26", тогда как в профайлере в реальном текут обычные часы и показывают "00:02:26". пробовал ставить Р канала в любое значение, от 0 до 6. результат тот же.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Штатно в БД нет типа данных "Временной интервал" (без даты).
Реально в канале TIME временной интервал хранится в виде целого числа. Только при отображении его средствами Trace Mode 6 формируется строка указанного вами вида.
Видимо, Вам придется либо средствами SQL-запроса, либо непосредственно в БД, либо программно в Trace Mode 6 преобразовывать временной интервал (целое числол секунд) в строку формата ВРЕМЯ.
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
Штатно в БД нет типа данных "Временной интервал" (без даты).

[Усмешка / Big Grin] А весь мир-то и не знает.
Скажу по секрету - у всех СУБД есть не только тип данных временной интервал, но и куча других, которые позволяют хранить "дату-время" и ее производные. И не только хранить, но [clever / умный] и обрабатывать прямо в в тексте SQL-запроса!
2Hip67: Настоятельно рекомендую открыть справочную систему на ту СУБД, с которой вы планируете работать, в части разделов SQL-синтаксиса. Например у СУБД MySQL по части работы с метками даты, времени и прочими временными параметрами - функций аж 58 штук! Такого можно с временными форматами вертеть прямо в тексте запроса... [master / мастер]
Если будут вопросы - стучите мне в аську, подскажу, чем смогу. Уже приходилось пару собак скушать на женитьбе ТМ6 и реляционных СУБД. Аська есть здесь на форуме в моих постах - через поиск смотрите. [Пдмигивание / Wink]
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2