![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Exception [D5, IB6.x]
nick-from © (2002-12-02 00:59:00)На сервере есть код:
Create Exception My_Exception "My Exception Text";
Create procedure My_ErrorCall
as
begin
My_Exception;
end;
У клиента на форме - обработчик кнопки:
procedure TForm1.Button1Click(Sender: TObject);
begin
Try
pFIBTransaction1.StartTransaction;
pFIBStoredProcError.ExecProc;
pFIBTransaction1.Commit;
ShowMessage("Commit");
except
ShowMessage("Rollback");
pFIBTransaction1.Rollback;
end;
end;
По нажатию этой кнопки, по идее, должно выскочить окно ошибки с текстом: "My Exception Text", чего не происходит, а выдается сообщение о RollBack ???
Если убрать слова Try-Except-End, то сообщение об ошибке "My Exception Text" выдается, и видимо после него происходит выход из процедуры (ни одного сообщения ShowMessage). Как в этом случае можно организовать подтверждение/откат транзакции, если до pFIBTransaction1.Rollback; дело даже не доходит.
Digitman (2002-12-02 12:18:00) [1]
> должно выскочить окно ошибки с текстом: "My Exception Text",
> чего не происходит, а выдается сообщение о RollBack ???
except
ShowMessage("Rollback");
pFIBTransaction1.Rollback;
raise;
end;
вот тебе и 2 окна "скачут" : первое с "RollBack", второе - с "...Exception N ...My Exception Text"
Prooksius (2002-12-02 09:57:00) [2]Хороший совет... :)
Кроме протирки глаз можно посоветовать обратить внимание на твою ХП. В ней exception надо вызывать так:
begin
exception My_Exception;
end
(c)Language Reference - читай почаще доку.
Alexandr (2002-12-02 06:45:00) [3]протри глаза, посмотри трезвым взглядом на свой код