Sunday, April 28, 2013

Beta testers wanted for Linux access to Windows data stores.

If any of you have good Microsoft SQL Server connections, I could use some help testing.  Adodbapi has been around a long time -- an old fork of it is used in django-mssql. This version is designed to replace that one.  I have added a new module in the package to let a Linux box get to Windows ADO data sources by remote control.  My ability to test is limited by my network speed, and extra eyes are always a good idea.  Please help out if you can.
Beta test is now available for adodbapi version 2.5
!!! NOW WORKS FROM LINUX !!!  (as a remote client using Pyro4)
ADO is Microsoft's update for ODBC, and can be used to open
almost any tabular data source in existance. I have personally
used adodbapi to read tables from: SQL Server, PostgreSQL, MySQL,
Jet (a.k.a. ACCESS), IBM DB2, Active Directory, and Excel.

Dozens of other sources are possible.  Since ADO is proprietary,
this requires the user to be running Windows.  I have added a new
"remote" module which will run on a Linux computer, and allow a
Windows computer to act as a "proxy" to make these data sources
available using a db-api version 2 interface on Linux.  The remote
client has almost the same interface as the local adodbapi --
except that custom error handlers and custom variant conversions
are not supported from the remote.

In order to make this work, I had to do major surgery on the way
adodbapi processes connection strings. (The complexity of a
connection string is the price you pay for the power of the ADO
connection engine.) I am happy to say that you can now follow the
PEP-249 suggestion using the USER, PASSWORD, HOST, and DATABASE
keywords (along with any others you wish to define) as arguments
to the .connect() method.

There are also connection keyword macros. Since the remote computer
may not be aware of whether the server is running 64 bit or 32 bit
Python (which require different ADO "Providers") the remote may send
a macro to the server, allowing the server to choose the correct one.

There are also connection keywords for PARAMSTYLE, AUTOCOMMIT, and
TIMEOUT, which allow you to override those defaults at connection time.

There is a new method for the connection object:
.get_table_names() which returns a list of all the table names in your
database. This works pretty much everywhere, and will even
list the worksheets in a remote Excel spreadsheet.

The beta will be available in a source zip file from

A rough draft of documentation is supplied as an .odt file.

Please, several people try this and look it over.  If all goes well, in
a few weeks it will be part of django-mssql.

You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
For more options, visit

No comments:

Post a Comment