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