![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
текст SQL ошибки в приложении [D5, MSSQL]
MakNik © (2004-09-28 13:51:00)В запросе, выполняемом из приложения, обрабатывается ошибка
IF @RCount<1
begin
RAISERROR ('Error... ',16,1) with log
...
End
Как получить текст этой ошибки в приложении?
АлексейК (2004-09-29 09:06:00) [1]Да, еще в определенных ситуациях потребутся установка в начале тела процедуры/триггера NOCOUNT ON, подробно опять в хелп, но такой простой пример.
CREATE PROCEDURE TEST
AS
INSERT INTO ....
VALUES ...
RAISERROR...
Ваше приложение RAISERROR не увидет.
А так
CREATE PROCEDURE TEST
AS
SET NOCOUNT ON
INSERT INTO ....
VALUES ...
RAISERROR...
или
CREATE PROCEDURE TEST
AS
RAISERROR...
INSERT INTO ....
VALUES ...
увидет. Если вы конечно через ADO работаете, с DBE точно не знаю.
АлексейК (2004-09-29 08:56:00) [2]значить небыло ошибки ! чтоб сгенерить ошибку в процедуре не забудте сразу после raiserror поставить return
Совсем необязательно. А вот параметрами RAISERROR'a нужно разобраться на тестовом примере или очень внимательно прочитать весь хелп (лучше конечно с хелпа начать). К примеру в моем частном случае приSeverity Levels=16ошибки в блокеtry exceptне возникало, а вот при значении 11 - пожалуйста. НО ошибку не видело только клиенскоеприложение (на сервере код отрабатывался правильно), при выполнении подобных действий через Analyzer сообщение об ошибке выводилось. Поробуйте выполнить действие в Analyzer'e, приводящее к ошибке, если оно проходит, значит ошибка все же не возникает, в противном случае разберитесь с RAISERROR.
hooch (2004-09-29 08:23:00) [3]
> - OnExecuteComplete отрабатывает, но ошибку не возвращает...
> - а except вообще не срабатывает...
значить небыло ошибки ! чтоб сгенерить ошибку в процедуре не забудте сразу после raiserror поставить return
sniknik (2004-09-28 17:51:00) [4]> - а except вообще не срабатывает...
значит ошибки не было.
MakNik (2004-09-28 17:34:00) [5]
> hooch © (28.09.04 13:55) [1]
- OnExecuteComplete отрабатывает, но ошибку не возвращает...
- а except вообще не срабатывает...
hooch (2004-09-28 13:55:00) [6]TADOConnection.OnExecuteComplete в параметрах передается Error из которого можно получить текст ошибки или
try
.execute
except
on E: Exception do
E.Message <-- оно
end;