Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

Unconverted SQLError in Python sdb.dbapi

From: Christian Ullrich <chris(at)chrullrich.de>
Date: Thu Aug 16 2007 - 05:38:45 EDT


Hello all,

the Python DB-API describes a set of exceptions that must be used by implementing modules. There is a bug in the current Python API (7.6.0.37), in which a native exception (sdb.sql.SQLError) is seen in code that uses the sdb.dbapi interface.

If the database connection times out, the next query will fail with an SQLError code 700 (session reconnected, work rolled back). This exception is caught in dbapi.py and converted to a DB-API compliant ProgrammingError exception. This works fine for simple statements.

If the query had parameters, however, the original exception is not handled and passes up to the caller. The following patch fixes this:

  • sdb/dbapi.py.orig 2007-08-16 11:24:58.915828800 +0200 +++ sdb/dbapi.py 2007-08-16 11:25:15.880053000 +0200 @@ -240,7 +240,7 @@ if parameters == None: result = wrapCall (self.__executeDirect, operation) else: - parsed = self.__getParsed, operation + parsed = wrapCall (self.__getParsed, operation) result = wrapCall (self.__executeParsed, parsed, parameters) return result

Preparing a (parameterized) statement for execution apparently involves communication with the server, so the __getParsed() call can fail for a lost connection.

--

Christian Ullrich

--

MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb To unsubscribe: http://lists.mysql.com/maxdb?unsub=lists@pantek.com Received on Thu Aug 16 12:52:52 2007

This archive was generated by hypermail 2.1.8 : Sun Oct 07 2007 - 10:14:33 EDT

Do you need help?X

Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library