The mxODBC Connect™ Database Interface for Python allows users to
easily connect Python applications to all major databases on the
market today in a highly portable, convenient and secure way.
Python Database Connectivity the Easy Way
Building on our mxODBC database interface for Python, mxODBC Connect is designed as client-server application, so you no longer need to find production quality database drivers for all platforms you target with your Python application.
Instead, you use an easy to install royalty-free Python client library which
connects directly to the mxODBC Connect database server over the
By removing the need to install and configure ODBC drivers on the
client side and dealing with complicated network setups for each set of
drivers, mxODBC Connect greatly simplifies
deployment of database driven client applications, while
at the same time making the network communication between client and
database server more efficient and more secure.
Documented and recommended use of SET NOCOUNT ON for
running multiple statements or stored procedures. This can not only
resolve issues with error reporting, it also results in better performance.
Added a work-around for MS SQL Server Native Client to be able to
support VARCHAR/VARBINARY(MAX) columns when using the Native Client with direct execution mode or Python type binding mode.
Thanks to ZeOmega for reporting this.
Added new helper singleton BinaryNull to allow binding a NULL to a
VARBINARY column with SQL Server in direct execution mode or Python type binding mode (as used for FreeTDS).
Using the usual None doesn't work in those cases,
since SQL Server does not accept a VARCHAR data type as
input for VARBINARY, except by using an explicit "CAST(? AS VARBINARY)".
mxODBC binds None as VARCHAR for best compatibility, when not getting
any type hints from the ODBC driver.
Added a fix for the MS SQL Server Native Client error "[Microsoft][ODBC Driver 11 for SQL
Server][SQL Server]The data types varchar and text are incompatible in
the equal to operator." when trying to bind a string of more than 256
bytes to a VARCHAR column while using cursor.executedirect().
cursor.execute() was unaffected by this. Thanks to Paul Perez for
Added a note to avoid using "execute " when calling stored procedures
with MS SQL Server. This can result in '[Microsoft][SQL Native
Client]Invalid Descriptor Index' errors. Simply dropping the "execute "
will have the error go away.
Added a work-around to address the FreeTDS driver error '[FreeTDS][SQL
Server]The data types varbinary and image are incompatible in the equal
to operator.' when trying to bind binary strings longer than 256 bytes
to a VARBINARY column. This problem does not occur with the MS SQL
Server Native Client.
Reenabled returning cursor.rowcount for FreeTDS >= 0.91. In previous
versions, FreeTDS could return wrong data for .rowcount when using
SELECTs.This should make SQLAlchemy users happy again.
Add work-around to have FreeTDS ODBC driver accept binary data in
strings as input for VARBINARY columns. A side effect of this is that
FreeTDS will now also accept binary data in VARCHAR columns.
SAP Sybase ASE
Added work-arounds and improvements for Sybase ASE ODBC drivers to enable working with BINARY and VARBINARY columns.
Added a work-around for a cursor.rowcount problem with Sybase ASE's ODBC
driver on 64-bit platforms. It sometimes returns 4294967295 instead of
Added note about random segfault problems with the Sybase ASE 15.7 ODBC driver
on Windows. Unfortunately, there's nothing much we can do about this,
other than recommend using the Sybase ASE 15.5 ODBC driver version which
does not have these stability problems.
Added improved documentation on the direct execution model available in mxODBC.
This can help in more complex parameter binding situations and also
provides performance boosts for a few databases, including e.g. MS SQL
For the full set of changes, including those of the 2.1 series of mxODBC Connect, please check the mxODBC Connect change log.
mxODBC Connect now has full support for input, output and input/output parameters in stored procedures and stored functions, allowing easy integration with existing databases systems.
User Customizable Row Objects
Support for user customizable row objects by adding cursor/connection .rowfactory and .row constructor attributes. When set, these are used to wrap the normal row tuples returned by the .fetch*() methods into dynamically created row objects.
New RowFactory classes to support cursor.rowfactory and cursor.row. These allow dynamically creating row classes that provide sequence as well as mapping and attribute access to row fields - similar to what namedtuples implements, but more efficient and specific to result sets.
Compatible with the latest gevent and greenlet packages. mxODBC
Connect Client will happily work together with the asynchronous
libraries gevent. All it takes is a single configuration entry in the
client side config file.
You are encouraged to upgrade to this latest mxODBC Connect release. When upgrading, please always upgrade both the server and the client installations to the same version - even for patch level releases.
We will give out 20% discount coupons for upgrade purchases going
from mxODBC Connect Server 1.x to 2.1 and 50% coupons for upgrades from mxODBC Connect Server 2.x to
2.1. Please contact the eGenix.com Sales Team with your existing license serials for details.
Users of our stand-alone mxODBC product will have to purchase new licenses from our online shop in order to use mxODBC Connect.