Доброе время суток.
У мена появилась проблема при выполнении 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.
НО!!!
Похоже теперь появилась новая:
при вызове RunSQL с запросом к БД , отрет в скрипте "Выполнен SQL запрос " поймать нельзя, т.к. он почему-то не обрабатывается
Здравствуйте. Вероятно Вы используете Demo-версию с ограничение на 64 тега. В этой версии процедура RunSQL больше не доступна в соответствии с описанием на этой странице (http://simple-scada.com/products):
Скрипты — регламентирует возможности скриптов. Ограничены — доступно управление любыми свойствами инструментов.
Не доступно: скрипты для экспорта в Excel, функции для работы с файлами (сохранение/загрузка из файла), скрипты для работы с БД.
Причем это ограничение было заявлено в версии Demo (64 тега) с самого начала, но мы для удобства тестирования оставляли процедуру RunSQL рабочей. Теперь появилась версия с ограничением только по времени (без других ограничений) и если Вам нужно использовать все возможности, то перейдите на версию Demo-Time (http://simple-scada.com/download-simple-scada).