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/[EMAIL PROTECTED]