Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 А как обработать ошибку  [new]
Новенький 1
Guest
Допустим возникает ошибка, а как ее обработать, чтобы программа не вылетала
21 июл 04, 14:55    [824285]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Glory
Member

Откуда:
Сообщений: 104760
Правила
21 июл 04, 14:56    [824287]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
if @@error<>0

Но, есть такие, по которым всё равно вылетит.
21 июл 04, 14:57    [824292]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Новенький 1
Guest
а что нет такого как в дельфи

try

except

end
21 июл 04, 15:01    [824312]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
неа. есть GOTO и BEGIN/END
21 июл 04, 15:03    [824321]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Новенький 1
Guest
так а причем здесь обработка ошибок
что тоя я конструкцию не пойму
21 июл 04, 15:03    [824326]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Petro123
Guest
Новенький 1
так а причем здесь обработка ошибок
что тоя я конструкцию не пойму

Это обработка ошибок в голове.
21 июл 04, 15:05    [824336]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Easygoing
Member

Откуда: SPB.RU
Сообщений: 560
Examples
A. Use @@ERROR to detect a specific error
This example uses @@ERROR to check for a check constraint violation (error #547) in an UPDATE statement.

USE pubs
GO
UPDATE authors SET au_id = '172 32 1176'
WHERE au_id = "172-32-1176"

IF @@ERROR = 547
   print "A check constraint violation occurred"

А вообще BOL для этих целей
21 июл 04, 15:06    [824340]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Новенький 1
так а причем здесь обработка ошибок
что тоя я конструкцию не пойму

А при том, что после всякой инструкции надо проверить значение @@ERROR и если оно не равно нулю, предпринять какие то действия.
Не нравится? Переходи на оракуль... или жди Юкона.
21 июл 04, 15:07    [824349]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Новенький 1
Guest
Ну вот смотри я пытаюсь удалить из таблицы данныек

delete from table_1

а там есть форин кей и выдает ошибку

erver: Msg 547, Level 16, State 1, Line 1
DELETE statement conflicted with COLUMN REFERENCE constraint 'R_23'. The conflict occurred in database 'USD_2', table 'tab_2', column 'ID'.
The statement has been terminated.

а как сделать чтобы просто пролетало дальше да и все
21 июл 04, 15:08    [824354]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
BOL
21 июл 04, 15:17    [824412]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
LKO
Guest
Пример такой:

USE pubs
GO

declare @er int

UPDATE authors SET au_id = '172 32 1176'
WHERE au_id = '172-32-1176'

select @er = @@error

IF @er =547
print 'A check constraint violation occurred'

Как сделать так, что бы вываливалось только сообщение "A check constraint violation occurred"?
26 янв 05, 15:26    [1275316]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
LKO
Пример такой:

USE pubs
GO

declare @er int

UPDATE authors SET au_id = '172 32 1176'
WHERE au_id = '172-32-1176'

select @er = @@error

IF @er =547
print 'A check constraint violation occurred'

Как сделать так, что бы вываливалось только сообщение "A check constraint violation occurred"?


пока нет возможности на сервере подавить отправку сообщения об ошибке клиенту. Тока в клиентской части.
26 янв 05, 15:49    [1275414]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
LKO
Member

Откуда: Москва
Сообщений: 85
А ведь есть ошибки, на которых исполнение процедуры прерывается...

Получается, что при возникновении такой ошибки, даже если после инструкции я проверяю значение @@ERROR и предпринимаю какие-то действия в случае ненулевого значения, направленые на исправление ошибки, исполнение просто не дойдет до этой проверки, а просто напросто остановится и выдаст мне сообщение об этом?
26 янв 05, 16:38    [1275706]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36800
LKO
А ведь есть ошибки, на которых исполнение процедуры прерывается...

Получается, что при возникновении такой ошибки, даже если после инструкции я проверяю значение @@ERROR и предпринимаю какие-то действия в случае ненулевого значения, направленые на исправление ошибки, исполнение просто не дойдет до этой проверки, а просто напросто остановится и выдаст мне сообщение об этом?

именно
Полноценная обработка исключений возможна только на клиенте. И, возможно, в 2005 сервере.
26 янв 05, 16:39    [1275715]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: А как обработать ошибку  [new]
borin
Member

Откуда: angarsk/msk
Сообщений: 677
Гавриленко Сергей Алексеевич
LKO
А ведь есть ошибки, на которых исполнение процедуры прерывается...

Получается, что при возникновении такой ошибки, даже если после инструкции я проверяю значение @@ERROR и предпринимаю какие-то действия в случае ненулевого значения, направленые на исправление ошибки, исполнение просто не дойдет до этой проверки, а просто напросто остановится и выдаст мне сообщение об этом?

именно
Полноценная обработка исключений возможна только на клиенте. И, возможно, в 2005 сервере.


да, у меня ошибка 7399 тоже прерывала такую смачную цепочку (
15 июл 09, 15:53    [7419646]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Новенький 1
а что нет такого как в дельфи

try

except

end
Как это нет?
А как насчет BEGIN ... TRY END ... TRY?
15 июл 09, 15:57    [7419681]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Ох...ий программизд
Guest
Senya_L
Новенький 1
а что нет такого как в дельфи

try

except

end
Как это нет?
А как насчет BEGIN ... TRY END ... TRY?

вопрос от 2004 года :-)
16 июл 09, 13:28    [7423697]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
borin
Member

Откуда: angarsk/msk
Сообщений: 677
Ох...ий программизд
Senya_L
Новенький 1
а что нет такого как в дельфи

try

except

end
Как это нет?
А как насчет BEGIN ... TRY END ... TRY?

вопрос от 2004 года :-)


этот форум настолько крут, что иногда используется как wiki, а не только для оперативного помогалова. я отмечаюсь в интересных мне темах, пусть и затронутых в прошлом веке. чтобы потом по участию себя любимого найти эти тему в случае чего
16 июл 09, 23:44    [7426780]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Ох...ий программизд
вопрос от 2004 года :-)
Точно. А я и не заметил
borin
этот форум настолько крут, что иногда используется как wiki, а не только для оперативного помогалова. я отмечаюсь в интересных мне темах, пусть и затронутых в прошлом веке. чтобы потом по участию себя любимого найти эти тему в случае чего
дело не в том, что Выподняли старую тему (кстати, чтобы сделать закладку на интересующую тему можно поместить страницу в Закладки/Избранное ;)), а в том, что в 2004 году еще не вышел MSSQL2005, где и появилась указанная языковая конструкция.
17 июл 09, 00:04    [7426824]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
borin
Member

Откуда: angarsk/msk
Сообщений: 677
Senya_L
Ох...ий программизд
вопрос от 2004 года :-)
Точно. А я и не заметил
borin
этот форум настолько крут, что иногда используется как wiki, а не только для оперативного помогалова. я отмечаюсь в интересных мне темах, пусть и затронутых в прошлом веке. чтобы потом по участию себя любимого найти эти тему в случае чего
дело не в том, что Выподняли старую тему (кстати, чтобы сделать закладку на интересующую тему можно поместить страницу в Закладки/Избранное ;)), а в том, что в 2004 году еще не вышел MSSQL2005, где и появилась указанная языковая конструкция.


не, я на такой непредсказуемой куче машин работаю по всему миру, что лучше на самом sql.ru закладки делать.
насчет 2004-5: надо же, обычно наши хакеры и видеопираты на шаг впереди официальных релизов :-)
23 июл 09, 09:31    [7448861]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
borin
не, я на такой непредсказуемой куче машин работаю по всему миру, что лучше на самом sql.ru закладки делать.
"Избранное" на SQL.RU - это закладки именно на сервере www.sql.ru!
23 июл 09, 09:39    [7448908]     Ответить | Цитировать Сообщить модератору
 Re: А как обработать ошибку  [new]
step_ks
Member

Откуда:
Сообщений: 936
borin

не, я на такой непредсказуемой куче машин работаю по всему миру, что лучше на самом sql.ru закладки делать.
:-)

Вверху страницы справа - "В избранное"
23 июл 09, 09:42    [7448924]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить