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

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

Автор Тема: Ошибка сервера при выполнении SQL-запроса  (Прочитано 6283 раз)

bezzub2007

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Доброе время суток.
 У мена появилась проблема при выполнении SQL запроса с изменением одного из значений поля в записи БД.
 Сервер выдает ошибку: "Сannot perform this operation on a closed dataset". Но при этом значение в БД все-таки меняется. А вот после этого работа с БД уже не возможна. Привожу весь скрипт, который приводит к ошибке:

Код
var
  aQuery: string;
  aCal_t_sigar1: string;
  aID: string;
begin
  aID := QuotedStr('1');
  aCal_t_sigar1 := QuotedStr(Cal_t_sigar1.AsStr);
   
  { Формируем запрос к БД }
  aQuery := 'UPDATE `constant` SET ' +               // вставка данных в таблицу constant
    '`Cal_t_sigar1`='     + aCal_t_sigar1 +
    ' WHERE `ID`=' + aID + ' ;';                     // номер записи в таблице =1

  { Отправляем запрос на выполнение }
  RunSQL(aQuery, nil, 0);
end.
« Изменён: 19 Июня 2017, 14:11:40 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Здравствуйте.

Странно, в данном коде не ведётся работа с набором данных. Можете отправить нам на почту поддержки (support@simple-scada.com) текущую версию проекта?
« Изменён: 16 Июня 2017, 10:21:33 от Simple-Scada »

bezzub2007

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Проблема РЕШЕНА!!!

Оказывается  нельзя, чтобы в проекте было более одного скрипта с типом "Выполнен SQL запрос".
У меня их было два. Когда я объединил их в один - ошибка исчезла.
Я так понимаю, что и скрипт с типом "Ошибка  SQL запроса" тоже должен быть в проекте не более одного.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Цитировать
Я так понимаю, что и скрипт с типом "Ошибка  SQL запроса" тоже должен быть в проекте не более одного.
Нет, это ошибка. Должно быть допустимо любое кол-во подобных скриптов. Обновление опубликуем на выходных.

Update: исправили описанную проблему в последнем обновлении.
« Изменён: 19 Июня 2017, 10:23:00 от Simple-Scada »

bezzub2007

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Спасибо

bezzub2007

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Добрый день !
В обновлении 2.2.2.0 данная проблема решена.
НО!!!
Похоже теперь появилась новая:
при вызове  RunSQL с запросом к БД , отрет в скрипте "Выполнен SQL запрос " поймать нельзя, т.к. он почему-то не обрабатывается

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Цитировать
НО!!!
Похоже теперь появилась новая:
при вызове  RunSQL с запросом к БД , отрет в скрипте "Выполнен SQL запрос " поймать нельзя, т.к. он почему-то не обрабатывается
Здравствуйте. Вероятно Вы используете Demo-версию с ограничение на 64 тега. В этой версии процедура RunSQL больше не доступна в соответствии с описанием на этой странице:
Код
Скрипты — регламентирует возможности скриптов. Ограничены — доступно управление любыми свойствами инструментов. 
Не доступно: скрипты для экспорта в Excel, функции для работы с файлами (сохранение/загрузка из файла), скрипты для работы с БД.

Причем это ограничение было заявлено в версии Demo (64 тега) с самого начала, но мы для удобства тестирования оставляли процедуру RunSQL рабочей. Теперь появилась версия с ограничением только по времени (без других ограничений) и если Вам нужно использовать все возможности, то перейдите на версию Demo-Time.
« Изменён: 19 Июня 2017, 14:10:38 от Simple-Scada »