Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Исключения хранимой процедуры


~ ©   (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]

дело в шляпе


Наверх

Титульная страница Поиск, карта сайта Написать письмо