powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как обработать исключение в ASE_12.5??
7 сообщений из 7, страница 1 из 1
Как обработать исключение в ASE_12.5??
    #33121320
Maktub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли возможность обработки исключительных ситуация в ASE_12.5??(как в нормальных СУБД)

И как пользоваться SQLSTATE??
Пример:

create procedure sp_tmp (@d char(10))
as
begin

declare @d2 datetime
select @r = convert(datetime,@d) /*здесь произойдет исключение. Как обработать??*/

end

exec sp_tmp 'qwerty'
...
Рейтинг: 0 / 0
Как обработать исключение в ASE_12.5??
    #33121393
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с анализа @@error.

Код: plaintext
1.
2.
3.
select @r = convert(datetime,@d)
if @@error <>  0  
begin
end
...
Рейтинг: 0 / 0
Как обработать исключение в ASE_12.5??
    #33121482
Maktub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр СпелицинНачните с анализа @@error.

Код: plaintext
1.
2.
3.
select @r = convert(datetime,@d)
if @@error <>  0  
begin
end


не спасает...на опереаторе select @r = convert(datetime,@d) происходит аварийное завершение хранимки, и след. операторы не выполняются.

Например, в оракле есть секция Excaption и в ней подобые ситуации очень хорошо обрабатываются.

Но, как быть с Sybase???
...
Рейтинг: 0 / 0
Как обработать исключение в ASE_12.5??
    #33121538
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaktubЕсть ли возможность обработки исключительных ситуация в ASE_12.5??(как в нормальных СУБД)

В ASE нет понятия "исключение" и нет их обработки.


Maktub
И как пользоваться SQLSTATE??

Ну как ... читать его, анализировать и что-то делать.
Обычно это на клиенте делают.

Maktub
create procedure sp_tmp (@d char(10))
as
begin
declare @d2 datetime
select @r = convert(datetime,@d) /*здесь произойдет исключение. Как обработать??*/

end

exec sp_tmp 'qwerty'


Конкретно с cоnvert на самом деле действительно полная засада. Это не исключение, а ошибка и прерывание серверного процесса. Ее никак нельзя обработать вообще, можно только ее избежать.

И то, что предложил Александр - тоже не годится - до if @@error .. управление
просто-напросто не дойдет.
Код: plaintext
1.
2.
3.
4.
5.
select @r = convert(datetime,@d)
if @@error <>  0  
begin
  ...
end

Этой же "особенностью" кстати обладает и родственный MSSQLServer, правда там уже соорудили функцию типа can_convert , которая позволяет понять, будет ли преобразование правильным и обойти само выполнение преобразования.
...
Рейтинг: 0 / 0
Как обработать исключение в ASE_12.5??
    #33121546
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, конкретно об этом случае - рекомендую не заниматься ерундой и посылать на сервер параметр уже в виде даты, а не строкой.
...
Рейтинг: 0 / 0
Как обработать исключение в ASE_12.5??
    #33121638
Maktub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да уж придется обрабатывать на клиенте...
Исключение воспринимается как стандарт - то что должно быть...
Жаль что этого нет в ASE.
...
Рейтинг: 0 / 0
Как обработать исключение в ASE_12.5??
    #33121641
Maktub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А КАК ПРОЧИТАТЬ ЗНАЧЕНИЕ "SQLSTATE"??
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как обработать исключение в ASE_12.5??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]