Simple-Scada forum

Simple-Scada 2 => Ошибки => Тема начата: bezzub2007 от 16 Июня 2017, 09:15:17

Название: Ошибка сервера при выполнении SQL-запроса
Отправлено: bezzub2007 от 16 Июня 2017, 09:15:17
Доброе время суток.
 У мена появилась проблема при выполнении 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.
Название: Re: Ошибка сервера при выполнении SQLзапроса
Отправлено: Simple-Scada от 16 Июня 2017, 09:22:04
Здравствуйте.

Странно, в данном коде не ведётся работа с набором данных. Можете отправить нам на почту поддержки (support@simple-scada.com) текущую версию проекта?
Название: Re: Ошибка сервера при выполнении SQLзапроса
Отправлено: bezzub2007 от 16 Июня 2017, 16:41:17
Проблема РЕШЕНА!!!

Оказывается  нельзя, чтобы в проекте было более одного скрипта с типом "Выполнен SQL запрос".
У меня их было два. Когда я объединил их в один - ошибка исчезла.
Я так понимаю, что и скрипт с типом "Ошибка  SQL запроса" тоже должен быть в проекте не более одного.
Название: Re: Ошибка сервера при выполнении SQLзапроса
Отправлено: Simple-Scada от 16 Июня 2017, 17:03:55
Цитировать
Я так понимаю, что и скрипт с типом "Ошибка  SQL запроса" тоже должен быть в проекте не более одного.
Нет, это ошибка. Должно быть допустимо любое кол-во подобных скриптов. Обновление опубликуем на выходных.

Update: исправили описанную проблему в последнем обновлении (http://simple-scada.com/forum/index.php?topic=178.msg3783#msg3783).
Название: Re: Ошибка сервера при выполнении SQLзапроса
Отправлено: bezzub2007 от 16 Июня 2017, 18:13:02
Спасибо
Название: Re: Ошибка сервера при выполнении SQLзапроса
Отправлено: bezzub2007 от 19 Июня 2017, 14:06:13
Добрый день !
В обновлении 2.2.2.0 данная проблема решена.
НО!!!
Похоже теперь появилась новая:
при вызове  RunSQL с запросом к БД , отрет в скрипте "Выполнен SQL запрос " поймать нельзя, т.к. он почему-то не обрабатывается
Название: Re: Ошибка сервера при выполнении SQLзапроса
Отправлено: Simple-Scada от 19 Июня 2017, 14:10:06
Цитировать
НО!!!
Похоже теперь появилась новая:
при вызове  RunSQL с запросом к БД , отрет в скрипте "Выполнен SQL запрос " поймать нельзя, т.к. он почему-то не обрабатывается
Здравствуйте. Вероятно Вы используете Demo-версию с ограничение на 64 тега. В этой версии процедура RunSQL больше не доступна в соответствии с описанием на этой странице (http://simple-scada.com/products):
Код
Скрипты — регламентирует возможности скриптов. Ограничены — доступно управление любыми свойствами инструментов. 
Не доступно: скрипты для экспорта в Excel, функции для работы с файлами (сохранение/загрузка из файла), скрипты для работы с БД.

Причем это ограничение было заявлено в версии Demo (64 тега) с самого начала, но мы для удобства тестирования оставляли процедуру RunSQL рабочей. Теперь появилась версия с ограничением только по времени (без других ограничений) и если Вам нужно использовать все возможности, то перейдите на версию Demo-Time (http://simple-scada.com/download-simple-scada).