Database connect / PDO

Jon Franz jfranz at neurokode.com
Tue Nov 25 13:07:18 EST 2003


> mxODBC provides all .description values except display_size and
> internal_size (and this is allowed by the DB API standard). These
> two values are rarely of importance and if you absolutely need them
> they can also be queried using the catalog methods the mxODBC exposes.

Sorry, but I disagree - these two values can be very important.

> You should note however, that some ODBC database drivers try
> to be smart and "optimize" the return values that you see
> in .description (the MyODBC driver is a prominent example).
> While this is allowed by the ODBC standard, it is certainly
> not good practice.
>
> As a result, the only true source of the schema information
> are the catalog methods, e.g. .columns() available in mxODBC.
> These also provide much more information than is available in
> .description.

I can understand where you are coming from in that the drivers
themselves may make it impossible to provide full/accurate column
data from a query.  I'd wager you can't even automate calls to
.column() because mxODBC doesn't necessarily know what table
a column came from when results are fetched.

I can only speak for myself, but it is quite frustrating to not get
the information I need when I perform a query.  Please realize
that my message was not intended as a defacement or argument
against mxODBC - I was simply warning the user of the pitfalls they
may experience when using it with PDO.

> mxODBC 2.0.x is 100% DB API 2.0 compliant.

Then you should change your documentation :)
"The mxODBC package provides a nearly 100% Python Database API 2.0 compliant
interface "
>From http://www.egenix.com/files/python/mxODBC.html

> The only omissions are .nextset() and .callproc() which will be
> available in mxODBC 2.1.0. Both are optional in the DB API 2.0
> specification.

If this is why the documentation says nearly, then your interpretation
of what 100% would mean is different from mine.  100% compliant
would, in my mind, be supporting all required interfaces.  I wouldn't
think optional interfaces are needed for compliance, and supporting
them, although good, wouldn't come into the percentage... unless you
wanted to say you were 105% compliant :)    .Just my two cents.

~Jon Franz
NeuroKode Labs, LLC






More information about the Python-list mailing list