[DB-SIG] odbc module choices
anthony.tuininga at gmail.com
Tue Oct 2 15:58:16 CEST 2007
On 9/30/07, M.-A. Lemburg <mal at egenix.com> wrote:
> On 2007-09-30 17:21, Carl Karsten wrote:
> > Why are there 3 opensource odbc modules?
> > and what are the differences between them?
> > From what I can tell, the stock odbc module doesn't implement some important
> > functions, like Tables() and Columns().
> mxODBC introduced those catalog methods.
> Here's a run-down (totally unbiased, of course ;-):
Of course. :-)
> The win32 odbc module is really old (it was one of the first database
> modules written for Python and triggered the DB-API specification). It
> only supports DB-API 1.0.
Agreed. It works, but only for limited definitions. :-)
> mxODBC was started in 1997 and maintained ever since. It triggered
> DB-API spec 2.0 and implements it. mxODBC supports ODBC drivers on all
> platforms where you can compile Python, including (but not limited to)
> Windows, Linux, Solaris, Mac OS X, FreeBSD, AIX and HP-UX.
> It's actively supported&maintained by eGenix.
A great module. Its only drawback (in my opinion, of course) is that
it is not free. Its source may not be available either -- at the very
least it is not readily available. The costs make it untenable for
small projects to use. Again, just my opinion.
> AFAIK, pyodbc has been in development for about a year. It's mostly a
> Windows module, focusses on MS SQL Server and implements DB-API 2.0.
I missed this one when I first did a search for ODBC modules. I found
it later but it has a number of missing features that I wanted. By
that point I had found that using the code for cx_Oracle as a base was
far better than using the pyodbc code as a base.
> ceodbc has just been released. Can't say much about it.
I am the author of this module so if you have any questions about it,
feel free to ask. I think I've explained why I didn't want to use the
other three choices available. As for working together, the odbc
module code is too old to be of much use. The mxODBC code is under an
incompatible license (if it is available). That leaves the pydobc
module which I'd be happy to work with as much as possible. The pyodbc
module is written in C++ and the ceODBC module is written in C which
makes that a little more difficult, though. As I already explained, I
believe the cx_Oracle code gave me the ability to leapfrog over the
pyodbc code -- but that's my opinion. Feel free to disagree with me.
> Hope that helps,
> Marc-Andre Lemburg
> Professional Python Services directly from the Source (#1, Sep 30 2007)
> >>> Python/Zope Consulting and Support ... http://www.egenix.com/
> >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
> >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
> :::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! ::::
> eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
> D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
> Registered at Amtsgericht Duesseldorf: HRB 46611
> DB-SIG maillist - DB-SIG at python.org
More information about the DB-SIG