Добрый день!
Согласно руководству у нас есть скрипт типа
"Ошибка SQL запроса". Логика создания понятна. Есть ошибка есть сообщение в
Msg.
Но так же у нас есть (можно сказать ID запроса,
DataSet) в
RunSQL свой
ATag. И в скрипте типа "
Выполнен SQL запрос" все замечательно работает.
Теперь к ситуации.
В универсальном скрипте, привязанном к кнопке по нажатию, формируем
RunSQL(aQuery, nil, 100), где
aQuery := 'CREATE TABLE ' + NameNewTable.AsStr + ' LIKE TemplateTable'.
Далее в скрипте типа
"Ошибка SQL запроса" добавляем
TextSQLError.Value := Msg;
if TextSQLError.Value <> '' then
AddMessage(Now, mkWarning, 'Таблица не добавлена', True, True);
и все прекрасно работает если мы пытаемся имитировать именно ошибку добавления таблицы с таким же именем.
Но вот вопрос, не будет ли путать оператора сообщение о создании таблицы при других ошибках SQL запросов. По логике событие будет формироваться при любых ошибках SQL запросов. Честно пока не подтвердилось опасение. Возможно ошибки Таблица. RunSQL к типу
"Ошибка SQL запроса" не относятся.
Можете у себя это проверить или опровергнуть опасения.
И теперь маленькое предложение-вопрос.
Если в скрипте типа "Ошибка SQL запроса" использовать следующую конструкцию:
begin
case DataSet.Tag of
100 :begin
TextSQLError.Value := Msg;
if TextSQLError.Value <> '' then
AddMessage(Now, mkWarning, 'Таблица не добавлена', True, True);
end;
end;
end.
У меня не заработала. Всего скорее, потому что номер 100 относиться к DataSet, а не к ошибке. И обработка идет в типе скрипта "Ошибка SQL запроса".
Или все таки он может заработать? Потому что я делаю не правильно? или потому что это скоро "... появиться в ближайших обновлениях ..."

Жду вопросов и предожений