The Python Database API 2.0 introduces a few major changes compared to the 1.0 version. Because some of these changes will cause existing DB API 1.0-based scripts to break, the major version number was adjusted to reflect this change. These are the most important changes from 1.0 to 2.0:
The need for a separate
dbi module was dropped,
and the functionality merged into the module interface itself.
New constructors and
type objects were added for
date/time values, the
object was renamed to
BINARY. The resulting set
should cover all basic data types commonly found in modern SQL
New constants (
were added to provide better database bindings.
The semantics of
.callproc() needed to call stored
procedures are now clearly defined.
The definition of the
.execute() return value
changed. Previously, the return value was based on the SQL statement
type (which was hard to correctly implement); it’s undefined
now. Use the more flexible
instead. Modules are free to return the old-style return values, but
these are no longer mandated by the specification and should be
considered database interface dependent.
Class-based exceptions were incorporated into the specification. Module implementors are free to extend the exception layout defined in this specification by subclassing the defined exception classes.