![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Исключения хранимой процедуры
~ © (2003-02-26 11:44:00)ADOStoredProc используется. Если первая выборка хранимой процедуры приводит к исключению, Connection.Errors.Count не равно нулю, если исключение появляется на второй выборке-клиентское приложение не видит ошибок. Что не так?
~ (2003-02-26 15:07:00) [1]>fool © (26.02.03 14:50)
Так, проверил-хавает только первый GO, второй уже никак.
Решение пока такое нашел-динамически вторая процедура создается такая:
---
CREATE PROCEDURE T2
@S Int OUTPUT
AS
exec TestErrorProc
Set @S = @@Error
---
fool (2003-02-26 14:50:00) [2]Попробуй в ХП апосля SELECT * FROM Table1 поставить GO, т.е.
SELECT * FROM Table1
GO
SELECT * FROM Table2
GO
Smashich (2003-02-26 14:28:00) [3]а крен его знает;(
~ (2003-02-26 14:05:00) [4]Так, проверил, так грамотнее, конечно, но, к сожалению, не сработало для выявления ошибки.
Smashish (2003-02-26 13:54:00) [5]CREATE PROCEDURE TestErrorProc AS
BEGIN
SELECT *
FROM Table1
SELECT *
FROM Table2
--.................
END
не в этом ли проблема?
~ (2003-02-26 13:48:00) [6]>Smashich © (26.02.03 13:27)
Спасибо, Smashich, за сочувствие, в наши дни его так часто не хватает.
MS SQL Server, код процедуры-шаблонный.
--.................
CREATE PROCEDURE TestErrorProc AS
SELECT *
FROM Table1
SELECT *
FROM Table2
--.................
Дело именно в том, что клиент не нюхает ошибку, какая бы она не была, если первое действие без ошибок. И прекрасно нюхает ее, если при первом же действии происходит исключение.
Smashich (2003-02-26 13:27:00) [7]тость ея прально понимаю что у тя есть ХП в которой ты делаешь 2 выборки, из Table1 и Table2? причем Tabel2 не существует....
и если выборку делать сначала из несуществующей - то возникает ошибка, если же наобарот второй строкой делать выборку из несуществующей таблицы - то ошибки не возникает?
по ходу дела у тя вторая строчка просто не исполняется....
а вообще что за СУБД?
и полный код ХП пожалуйста!
типа create procedure(~)
returns (~)
as
~
~ (2003-02-26 12:41:00) [8]Да там просто тест, мне просто надо отлавливать на клиенте все ошибки.
SELECT * FROM table1
SELECT * FROM table2
table2 не существует в природе, стер я ее, нафиг.
Если переставить эти строки-клиент видит ошибку, и ее можно вывести, Description толковый.
А при таком тексте-не видит.
Помогите, пожалуйста!
BorisUK (2003-02-26 12:38:00) [9]Ну ... как кароче...
как ты смог объяснить проблему.. так те и смогли ответить.
где сама ХП то????
Что из тебя клещями все тянуть надо?
~ (2003-02-26 12:27:00) [10]Прошу прощения, везде ADOStoredProc1
~ (2003-02-26 12:23:00) [11]Код вот такой:
try
ADOStoredProc1.ExecProc;
except
ShowMessage(IntToStr (ADOStoredProc2.Connection.Errors.Count));
end;
Если в хранимой процедуре исключение появляется в первой выборке, ошибка ловится, если дальше-нет (в Query Analizyr-всегда).
Smashich (2003-02-26 12:07:00) [12]я отвечу если вы мне подскажете где ошибка в моей программе?
кода не дам!
~ (2003-02-26 12:02:00) [13]>Smashich © (26.02.03 11:49)
Простите, пожалуйста, я не совсем понял Ваш ответ. Нельзя ли более развернуто пояснить? Очень надо.
Smashich (2003-02-26 11:49:00) [14]дело в шляпе