44from ..base import IRISExecutionContext
55from . import dbapi
66from .dbapi import connect
7- from .dbapi import IntegrityError , OperationalError , DatabaseError
87from sqlalchemy .engine .cursor import CursorFetchStrategy
98
109
@@ -17,6 +16,7 @@ def wrapper(cursor, *args, **kwargs):
1716 cursor .sqlcode = 0
1817 return func (cursor , * args , ** kwargs )
1918 except RuntimeError as ex :
19+ dbapi ._sync_exception_classes ()
2020 # [SQLCODE: <-119>:...
2121 message = ex .args [0 ]
2222 if "<LIST ERROR>" in message :
@@ -27,10 +27,13 @@ def wrapper(cursor, *args, **kwargs):
2727 raise Exception (message )
2828 sqlcode = int (sqlcode [0 ])
2929 if abs (sqlcode ) in [108 , 119 , 121 , 122 ]:
30- raise IntegrityError (sqlcode , message )
30+ raise dbapi . IntegrityError (sqlcode , message )
3131 if abs (sqlcode ) in [1 , 12 ]:
32- raise OperationalError (sqlcode , message )
33- raise DatabaseError (sqlcode , message )
32+ raise dbapi .OperationalError (sqlcode , message )
33+ raise dbapi .DatabaseError (sqlcode , message )
34+ except Exception :
35+ dbapi ._sync_exception_classes ()
36+ raise
3437
3538 return wrapper
3639
@@ -153,7 +156,6 @@ def set_isolation_level(self, connection, level_str):
153156 with connection .cursor () as cursor :
154157 cursor .execute ("SET TRANSACTION ISOLATION LEVEL " + level_str )
155158
156- """
157159 @remap_exception
158160 def do_execute (self , cursor , query , params , context = None ):
159161 if query .endswith (";" ):
@@ -170,6 +172,5 @@ def do_executemany(self, cursor, query, params, context=None):
170172 params = [param [0 ] if len (param ) else None for param in params ]
171173 cursor .executemany (query , params )
172174
173- """
174175
175176dialect = IRISDialect_intersystems
0 commit comments