Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » Однократное выполнение канала Call

   
Автор / Author Тема / Topic: Однократное выполнение канала Call
Hip67
Forum Member / Участник форума
Участник № / Member № 4427


Icon 5 отправлено / posted      Профиль для / Profile for Hip67           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте! возможно простейший вопрос, но подскажите, как выполнить однократное выполнение канала Call? конкретно, необходимо, по факту возникновения определенного события, записывать значения в БД. событие отслеживаю программой с циклом в 1 сек. после возникновения события программа вызывает канал Call с БД и записываются сотни значений с периодичностью (насколько я понял) канала вызова, но надо выполнить всего одну запись, после чего дальше отслеживать появление события.
Сообщения / Posts 46 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
SQL-запрос выполняется всегда однократно.
Собственно вызов канала CALL.SQL состоит в передаче в него номера запроса из привязанного шаблона. После выполнения запроса значение канала сбрасывается.
Новый запрос будет реализован только при подаче в этот канал номера запроса.
При запросы большого объема могут возникнуть проблемы с ограничениями на длину SQL-запроса в конкретном ODBC-драйвере.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Hip67
Forum Member / Участник форума
Участник № / Member № 4427


Icon 1 отправлено / posted      Профиль для / Profile for Hip67           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
хм. тогда получается, что это не SQL-запрос выполняется несколько раз, а программа вызывает несколько SQL-запросов с определенной периодичностью, заданной в канале вызова программы?
Сообщения / Posts 46 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Выходит, так.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Hip67
Forum Member / Участник форума
Участник № / Member № 4427


Icon 1 отправлено / posted      Профиль для / Profile for Hip67           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
выяснил как это совершить. использую программу LD, которая по положительному переходу события отправляет на вход вызова БД единицу в 1 такт. но теперь появилась другая проблема: в канал Time приходят секунды, он в реальном атрибуте переводит их в час:мин:сек. как это значение записать в базу в таком же виде?
Сообщения / Posts 46 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Если Вы зададите в SQL-запросе аргумент типа Date & Time и свяжете его с атрибутом РЕАЛЬНОЕ канала TIME, то это значение в формате строки и будет передано в БД.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Hip67
Forum Member / Участник форума
Участник № / Member № 4427


Icon 1 отправлено / posted      Профиль для / Profile for Hip67           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
дело в том, что аргумент типа Date & Time связанный с реальным атрибутом канала TIME передает в БД следующее "1970-01-01 03:02:26", тогда как в профайлере в реальном текут обычные часы и показывают "00:02:26". пробовал ставить Р канала в любое значение, от 0 до 6. результат тот же.
Сообщения / Posts 46 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Штатно в БД нет типа данных "Временной интервал" (без даты).
Реально в канале TIME временной интервал хранится в виде целого числа. Только при отображении его средствами Trace Mode 6 формируется строка указанного вами вида.
Видимо, Вам придется либо средствами SQL-запроса, либо непосредственно в БД, либо программно в Trace Mode 6 преобразовывать временной интервал (целое числол секунд) в строку формата ВРЕМЯ.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Romсheg
unregistered



Icon 1 отправлено / posted            Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
Штатно в БД нет типа данных "Временной интервал" (без даты).

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

IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2