|
From: Greg W. <gwa...@py...> - 2006-07-20 08:50:47
|
On 20 July 2006, Andrew McNamara said:
> >Am I the only one who thinks that there's an ugly flaw in the Python
> >Database API [...]
>
> Only one? 8-)
No comment. (This is the ugly flaw that's annoying me today.)
> I've seen people use things like:
>
> if ...:
> from pyPgSQL import PgSQL as dbapi2
> elif ...:
> import psycopg2 as dbapi2
> elif ...:
> import sybase as dbapi2
What, in every script or module that does database interaction? No thanks.
And what about the mythical script that migrates data from Sybase to
Postgres using both drivers?
BTW, PEP 249 (DB-API 2.0) has this under "Optional DB API Extensions":
Connection Attributes .Error, .ProgrammingError, etc.
All exception classes defined by the DB API standard should be
exposed on the Connection objects as attributes (in addition
to being available at module scope).
These attributes simplify error handling in multi-connection
environments.
Warning Message: "DB-API extension connection.<exception> used"
Obviously this is no good unless all drivers that you want to use support
it. I'll go see if I can whip up a patch for python-sybase. In the worst
case, I could monkey-patch those attributes in to every Connection in my
abstraction layer. (Blech.)
Greg
|