Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2015 06:41:15

AEX
От: Екатеринбург
Зарегистрирован: 2015-09-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка ошибки хранимой процедуры pymssql + python 3.4.3

Доброго дня
Есть процедурка, которая при неверном действии юзера генерит raiserror c разными severity в зависимости от типа ошибки.
Я пытаюсь обработать это сообщение

try:
    excur.callproc('[dbo].[proc_LoadCheck]',(DropID, TsID, Door, UserName,))
    conn.commit()
except pymssql.DatabaseError as e:
    print ('Error user input')
Оно вроде все хорошо. Но есть вопрос, как сделать так, чтобы в зависимости от того или иного уровня ошибки я мог вывести на экран нечто конкретное. Например что-то вроде:
if e.severity == 16: 
print ('Err1')

Спасибо.

Офлайн

#2 Дек. 9, 2015 15:47:08

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Обработка ошибки хранимой процедуры pymssql + python 3.4.3

Придеться пользоваться низкоуровневым модулем _mssql вместо DB-API, у него в _mssql.MSSQLDatabaseException есть severity. А уровень DB-API построен уже поверх него, и в callproc, перехватывает MSSQLDatabaseException, и бросает DatabaseError. Подробности здесь и здесь



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Дек. 9, 2015 15:48:11)

Офлайн

#3 Дек. 11, 2015 11:43:08

AEX
От: Екатеринбург
Зарегистрирован: 2015-09-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка ошибки хранимой процедуры pymssql + python 3.4.3

Премного благодарен. Все получилось.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version