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