Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Выполнение Insert запроса MS SQL  (Прочитано 1455 раз)

EricFlat

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Выполнение Insert запроса MS SQL
« : 28 Марта 2019, 11:27:12 »
Добрый день.
В проекте организован алгоритм записи данных из контроллера в БД. Запросы записи выполняются по таймеру, не чаще чем каждые 15 секунд.
Иногда возникают ситуации, когда в БД оказываются записи от нескольких повторяющихся Insert запросов иногда c разницей во времени в секунду.
На скриншоте показана таблица из БД. Красным обвел повторяющиеся записи.
Пока не могу определить, с чем это связано. Есть подозрение, что процедура RunSQL выполняется несколько раз за вызов. Есть возможность логгировать вызов RunSQL?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Выполнение Insert запроса MS SQL
« Ответ #1 : 29 Марта 2019, 11:10:42 »
Здравствуйте.

Мы можем лишь гарантировать, что один вызов RunSQL из скрипта приводит только к одному выполнению запроса. Скада не выполняет повторные попытки даже в случае ошибки в запросе. Поэтому несколько запросов может быть выполнено только если скрипт с RunSQL будет вызван несколько раз, что скорее всего и происходит у Вас.

Цитировать
Есть возможность логгировать вызов RunSQL?
Можно в каждом скрипте перед вызовом RunSQL добавить Log_Add с текстом запроса, тогда все RunSQL будут записываться в лог-файл. В ближайшее время станет доступна новая версия скады в которой будет опция автоматического логгирования запросов с информацией о скриптах из которых был вызван RunSQL.
« Изменён: 29 Марта 2019, 11:12:02 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Выполнение Insert запроса MS SQL
« Ответ #2 : 31 Марта 2019, 11:04:25 »
Отправили обновление с возможностью лога RunSQL Вам на e-mail.