powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с Exception в TOracleScript (doa)
12 сообщений из 12, страница 1 из 1
Проблема с Exception в TOracleScript (doa)
    #32174660
Meson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!

У кого есть опыт использование компонента TOracleScript из пакета doa (Direct Oracle Access)?

Проблема состоит в том, что компонент вообще не генерирует Exception.
В OracleMonitor сообщение об ошибке регистрируется вполне исправно,
а компонент TOracleScript ведет себя так, будто ни чего не произошло.
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32174663
Завтра на mns3006@mns.ru
Уверен, не проблема!
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32174664
Вру!!!!!!!!!!!!!!!!!!!!!
mns3006@nalog.ru
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32175714
Meson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так какие будут мнения?
Может ли кто-нибудь поделиться решениями?
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32175716
Divan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У него есть свойство, что то типа выдавать сообщение по ошибке или нет.
Так вот, если оно стоит в false то TOracleScript ничего и не скажет

А вообще я пользовал класс исключений оракл, с ним удобнее.
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32175736
Meson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Divan > У него есть свойство, что то типа выдавать сообщение по ошибке или нет.
OutputOptions[ooError] ?
Не совсем так (я его тоже сперва заподозрил).
Это свойство управляет тем, какую информацию следует выводить в выходной поток.
Exception не генерируется независимо от установки этого свойства.

Divan > А вообще я пользовал класс исключений оракл
Использовал для обработки исключений в TOracleScript ?
Это именно то, что мне нужно! Если не влом, можно подробности ?
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32175769
Divan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем вчера под рукой не было, а вот сейчас открываю и смотрю....

1. у TOracleScript есть такое свойство ExitOnError, так вот, если оно стоит в false, скрипт TOracleScript при генерации ошибки ничего не выдаст

2. вот тебе небольшой кусочек кода

try
OracleDataSet1.Open;
except
on E: EOracleError do begin
ShowMessage(IntToSTR(E.ErrorCode));
end;

вообщем тут все понятно.
Таким образом можно отлавливать ошибки практически в любом месте, и разбирать ее как тебе угодно ( вытащить код, описание... и т.п.)
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32175912
Александр Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Declaration

property ExitOnError: Boolean;

Description

If this property is set to True, script execution will stop whenever a SQL command fails. If this property is set to False, the error message will be written to the output (if the OutputOptions are set accordingly), and execution will continue with the next command.
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32176899
Meson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Divan у TOracleScript есть свойство ExitOnError, если оно стоит в false, скрипт TOracleScript при генерации ошибки ничего не выдаст

Это правильно, но только отчасти. Ошибка (точнее Exception) при исполнении скритпа не генерируется. Свойство ExitOnError отвечает на вопрос нужно ли продолжать выполнение скрипта после ошибочной команды. А будет ли описание ошибки выдано в property Output: TStrings зависит от OutputOptions[ooError] . Впрочем я повторяюсь...

>Divan вот тебе небольшой кусочек кода
try
OracleDataSet1.Open;
except

Абсолютно согласен. Но речь идет не о TOracleDataSet (с ним все ясно), а о TOracleScript.

Попробуй вот этот код (надеюсь таблицы 'MESON' у тебя нет!):
Код: plaintext
1.
2.
3.
4.
5.
  OracleScript1.Lines.Add('delete from MESON where PROBLEM_Id=1');
  try
     OracleScript1.Execute;
  except
     ShowMessage('Это сообщение об ошибке не появится');
  end;


>Александр Б
Надеюсь я не сильно наврал в своем вольном переводе ?

Складывается впечатление, что придется писать наследника от TOracleScript который по событию OnError будет генерировать этот самый Exception.
Или может кто-нибудь это уже сделал ?
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32176934
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Там не в TRY...EXCEPT заворачивать надо. Он exception не генерирует!!!

У TOracleScript есть event OnError - вот с ним и надо работать.
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32177954
Meson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>eNose ... event OnError - вот с ним и надо работать
К этому OnError я уже присматриваюсь. На мой взгляд работать с ним непосредственно в формах неудобно. Обрастает кучей непринципиальных довесков - глобальные переменные, обработчики событий, очистка до запуска скрипта, проверки после...
Как-то не вяжется с общей концепцией применения пакета.

Неужели ни где нет продуманного наследника? А?

Спрошу иначе:

Код: plaintext
1.
КТО  ВСТРЕЧАЛ  НАСЛЕДНИКА  ОТ  TOracleScript,  УМЕЮЩЕГО   ГЕНЕРИРОВАТЬ  Exception ?
...
Рейтинг: 0 / 0
Проблема с Exception в TOracleScript (doa)
    #32178010
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
В OnError пропиши генерацию Exception.
А затем будет try ... except работать.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с Exception в TOracleScript (doa)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]