This is topic Запись данных в БД с заданной периодичностью in forum Работа с приложениями (ODBC-SQL/OPC/DDE) at Форум TRACE MODE: техническая поддержка.
Добрый день! Создаю программу, которая пишет данные с датчиков в БД MS SQL. По нажатию кнопки данные пишутся нормально. Но не могу понять, как писать эти данные автоматически, скажем, каждые 5 секунд. И вообще, как можно выполнять какое-то действие через заданные интервалы времени?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Способы организации периодичности исполнения каких-либо действий существенно зависят от механизмов реализации этих действий.
В частности, для организации периодической записи в БД, надо в канал CALL_SQL периодически подавать номер SQL-запроса, реализуемого этим каналом. Посылать этот номер в канал можно либо программно, либо с помощью каналов CALL_MOVE или CALL_Set (задав им соответствующие периоды обработки). Надо при этом учитывать, что период посылки должен быть больше времени реализации SQL-запроса (после завершения запроса значение канала CALL_SQL сбрасывается).
Posted by Eman1982 (Участник № / Member № 5619) on :
С помощью каналов пока не получается, а программно как именно?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В программе должна быть всего 1 строка присвоения целочисленноу аргументу (OUT) значения, равного номеру запроса. Аргумент программы должен быть связан с атрибутом ВХОД канала CALL_SQL. Период обработки CALL_Program должен быть задан, например, 5 сек. Это при условии, что запрос в течение 5 секунд будет выполнен.
Именно такую функцию и выполнят для Вас каналы CALL_MOVE или CALL_Set.
Posted by Eman1982 (Участник № / Member № 5619) on :
Спасибо! Удобней всего получается при использовании канала типа Move.
Сделал: 1. Создаем канал CALL 2. Выставляем: Тип вызова: Move Период: 5 сек 3. В аргументах создаем:
Переменная "Номер_запроса" IN REAL зн-е по умолчанию=1 (1- номер SQL запроса на запись). Привязки нет.
Переменная "Команда_на_запись" OUT REAL. "Команда_на_запись" привязана на База_данных:Входное значение.