mxODBC Connect

mxODBC Connect - Database Interface for Python

The eGenix.com mxODBC Connect product provides a client-server based approach to Python database connectivity.
Version: 0.9.1 (beta)

Introduction

mxODBC Connect is new client-server product from eGenix that enables easy and secure access from any Python application to remote databases on your network.

BETA NOTICE:
mxODBC Connect is currently in public beta. If you are interested in participating in the beta program, please see our beta program page for details. We offer discount coupons for any bug that you find...

Building Python Database Applications on Standards

ODBC stands for Open Database Connectivity and is an industry standard API for connecting applications to databases. In order to facilitate setting up ODBC connectivity, operating systems typically provide ODBC managers which help set up the ODBC drivers and manage the binding of the applications against these drivers. On Windows and Mac OS X the ODBC manager is built into the system. On Unix platforms, there are two ODBC managers, unixODBC and iODBC, which provide the same functionality on most Unix systems.

mxODBC, our stand-alone Python Database Interface, uses these ODBC managers to connect your Python application to the database. On Windows this is a straight-forward approach, since database vendors ship production quality Windows ODBC drivers for their databases.

On platforms such as Linux, Solaris, BSD and Mac OS X, however, it is often not easy to get production quality ODBC drivers.

This is where mxODBC Connect makes a big difference...

Adding Flexibility, Performance and Security

Instead of installing mxODBC and an ODBC driver on every client machine that runs your Python application, you only have to download and install the mxODBC Connect Client on your client machine.

The mxODBC Connect Client is an add-on to our eGenix.com mx Base Distribution which easily installs and runs on all major Python platforms, so you no longer have to worry about getting production quality ODBC drivers for all the client platforms you intend to support with your application.

On the server side, you install the mxODBC Connect Server. This comes with an easy to use installer for Windows and Linux and connects to the ODBC driver on the server machine in order to talk to the database kernel.

By having all server components on the same machine, you benefit from the added performance due to reduced low-level network communication, direct connection to the database kernel and the advantage of running queries on the more powerful server machine. The network protocol used by mxODBC Connect, is optimized for use of the mxODBC Python Database API, so by using mxODBC Connect you achieve better overall performance.

Features

mxODBC Connect Client Features:

  • mxODBC Client API: mxODBC Connect Client provides the same interface as our stand-alone mxODBC interface on all supported client platforms.
  • Easy Configuration: using an INI file or parameters.
  • Easy Installation: no need to worry about ODBC drivers for the client platform.
  • Easy Integration: porting existing mxODBC applications to mxODBC Connect is straight-forward and so is supporting both stand-alone mxODBC and mxODBC Connect in your client application for added flexibility.
  • Enterprise Level Security: mxODBC Connect can use SSL encrypted connections - a feature that many database client interfaces don't provide.
  • Automatic Fail-over: the client will automatically choose the next available and working server if you configure multiple servers.
  • Enhanced Query Performance: by running queries directly on the server rather than client machines, you directly benefit from the more powerful server hardware.
  • Python Database API 2.0 Compliance: the mxODBC Client API is fully Python DB-API 2.0 compatible and implements a large number of powerful extensions.
  • ODBC Catalog & Introspection Functions: mxODBC Client API provides methods e.g. to list tables, find column specifications, query index relationships, etc.
  • Dynamic ODBC Configuration: adjust ODBC connection parameters dynamically, e.g. set timeouts, read-only access, auto-commit, etc.
  • Full Unicode Support: use Unicode for managing text data in your client applications - even if the database does not natively support Unicode, mxODBC will automatically provide the necessary conversions on-the-fly.
  • Configurable Data Type Mappings:
    • Supports Python type binding and Database type binding.
    • Supports mxDateTime and Python's time and datetime modules for date/time value exchange.
    • Supports standard Python floats, integers, longs and Python's decimal module for loss-less numeric value exchange.
    • Automatically handles and supports unknown data types and user data types via string conversion.
  • Full Python Support: mxODBC Connect Client works with Python 2.3, 2.4 and 2.5 on 32-bit and 64-bit platforms - regardless of the server side platform.
  • Highly Portable Codebase : in addition to the already supported platforms for mxODBC Connect Client, we provide custom support for more exotic platforms.

mxODBC Connect Server Features:

  • Support for all recent ODBC Version : mxODBC Connect Server works with ODBC drivers implementing the ODBC version specifications 2.0 - 3.52.
  • Uses ODBC 3 APIs: provided the ODBC driver is capable of using ODBC 3 APIs, mxODBC will use them for added efficiency.
  • 32-bit and 64-bit ODBC: mxODBC supports both 32-bit and 64-bit versions of the ODBC standard - including special 64-bit builds on Unix.
  • Stable, robust and reliable:the mxODBC API has been in active use for more than 10 years.
  • Easy installation: an installer takes care of the complete setup of the server.
  • Easy configuration: a single INI file to configure the mxODBC Connect Server.
  • Enterprise level security: SSL encrypted communication, certificate based server access control, username/password authentication.
  • Native OS Integration: mxODBC Connect Server can run as system service on Windows and system daemon on Unix.

System Requirements

mxODBC Connect Client:

The mxODBC Connect Clients requires installation of our eGenix.com mx Base Distribution as well as the eGenix.com pyOpenSSL Distribution if you want to benefit from SSL encrypted network communication.

The only other requirement is a working Python 2.3, 2.4 or 2.5 installation.

You do not need to have ODBC drivers for the platform on which you plan to run the mxODBC Connect Client package.

mxODBC Connect Server:

The eGenix mxODBC Connect Server includes everything you need to connect the server side ODBC manager to the mxODBC Connect Clients.

However, it does not include an ODBC manager or any ODBC drivers. You have to have these installed on the server machine in order to be able to use mxODBC Connect Server.

Windows

On Windows, the situation is very simple: most databases come with ODBC drivers and register them with the Windows ODBC manager that's part of every Windows system.

Please consult the ODBC driver documentation for details on how to setup ODBC data sources. The mxODBC User Manual also includes a section on this topic and some helpful hints in case you run into problems.

Linux

On Linux, you will have to install one of the popular ODBC managers iODBC or unixODBC and then register the ODBC drivers for your database with these ODBC managers.

Linux systems usually come with at least one of these ODBC managers preinstalled. Please see the mxODBC User Manual for ODBC data source setup instructions.

We currently support these Linux distributions for the mxODBC Connect Server: RedHat, Ubuntu, Debian, openSUSE.

Other Operating Systems

Depending on customer feedback, mxODBC Connect Server will also be made available for other platforms.

Licensing

The eGenix.com mxODBC Connect Server and Client products are made available under the terms and conditions of the eGenix.com Commercial License Agreement, Version 1.2.0 (PDF file).

mxODBC Connect Client:

The mxODBC Connect Client is a free download and can be installed on any number of machines, subject to the eGenix.com Commercial License Agreement, Version 1.2.0 together with the eGenix.com mxODBC Connect Client 1.0.0 General Proof of Authorization.

The only condition is that you have licensed the mxODBC Connect Server for evaluation or production use.

mxODBC Connect Server:

Licenses are required to run the mxODBC Connect Server. You purchase licenses based on the number of concurrent database connections you intend to open with the mxODBC Connect Server and the number of mxODBC Connect Server installations you require.

When purchasing a license for the mxODBC Connect Server product, you will receive a digitally signed Proof of Authorization license.txt file together with a license.py file that you need in order to provide to the mxODBC Connect Server installer.

Note: mxODBC Connect Server contains a number of open-source third-party products. For details please see the mxODBC Connect User Manual and Installation Guide.The license texts for these third-party products are available in the eGenix.com Third-Party License Guide 1.0.

Evaluation

If you would like to evaluate the eGenix.com mxODBC Connect product, please request an evaluation license or send an email to the eGenix.com Sales Team and include the following information: name of the licensee, number of evaluation licenses.

We will then send you the requested number of evaluation licenses by email. The evaluation licenses each permit installation on 1 CPU and allow up to 20 concurrent database connections. They have a built-in timeout of 30 days, but are otherwise fully functional.

If you are satisfied with the product, you can then proceed to the next section.

Buy Licenses

Production licenses for the mxODBC Connect product can be bought via our eGenix.com Online Shop. Licenses are sold per installation and number of concurrent database connections (the minimum is 20 concurrent connections).

For prices and volume discounts please check the mxODBC Connect Server License Shop Page.

We also offer site and corporate licenses. Please write to sales@egenix.com for quotes on these.

After purchase, you will receive the necessary license files from eGenix.com within two business by email to the shipping address you specified in the ordering process.

If you need to buy licenses for third parties (e.g. as contractor or reseller), please consult sales@egenix.com for instructions.

If you have questions about the ordering process, or the needed number of licenses, please write to the eGenix.com Sales Team.

Developer Licenses

We plan to also offer developer licenses for mxODBC Connect which will then allow you to integrate mxODBC Connect into an application or product. Please contact the eGenix.com Sales Team for details.

Documentation

The documentation for mxODBC Connect is available as PDF file:

mxODBC Connect User Manual and Installation Guide

The manual includes an installation guide, a discussion of the design principles behind mxODBC Connect, as well as a reference of the available programming interfaces in the mxODBC Connect Client.

The mxODBC API itself is described in the following manual:

mxODBC User Manual and Reference Guide

The manual includes an installation guide, a discussion of the design principles behind mxODBC, as well as a reference of the available programming interfaces.

mxODBC Connect Server contains a number of open-source third-party products. The licenses for these are available in the eGenix.com Third-Party License Guide 1.0 .

These PDF files is also available as part of the installation and can be found in the mx/ODBCConnect/Doc/ folder.

Books

"Python Programming On Win32" by Mark Hammond, Andy Robinson has a section on the mxODBC API.

Download of the mxODBC Connect Server

A successful installation of mxODBC Connect requires installation of at least one mxODBC Connect Server and a number of mxODBC Connect Clients.

Please note:

  1. The downloads below do not contain any license keys. You will either have to obtain evaluation licenses or buy production licenses in order to successfully install and use the mxODBC Connect Server.
  2. Please select the right download for your platform and then follow the installation instructions below.
  3. Since the eGenix.com mxODBC Connect Server uses cryptographic code (the eGenix.com pyOpenSSL Distribution) , you will be asked to confirm to comply to the German and EU export regulations (which are based on of the Wassenar Arangement). Please make sure that downloading and using cryptography is legal in your country.
  4. Redistribution of these files is not allowed. Please contact the eGenix Sales Team for details about redistribution possibilities and terms.
IMPORTANT NOTICE:
By downloading, installing or using the eGenix mxODBC Connect Server, you agree to the terms and conditions set forth in the eGenix.com Commercial License Agreement 1.2.0 and the applicable licenses terms for the included third-party product (see eGenix.com Third-Party License Guide 1.0).

Windows (32-bit):

The mxODBC Connect Server installer will guide you through the installation process.

Please have the license files available on the server machine, since these are needed during the installation process.

The Windows ODBC manager which comes with the Windows Operating System will be used by this distribution.

Linux (32-bit and 64-bit):

The mxODBC Connect Server installer will guide you through the installation process.

Please have the license files available on the server machine, since these are needed during the installation process.

You will need to have one of popular ODBC managers for Unix installed on the target system: iODBC 3.52.x or unixODBC 2.2.x. We have successfully tested the product with iODBC 3.52.6 and unixODBC 2.2.12.

Source Code:

mxODBC Connect Server is a commercial product for which we do not make the source code available.

Other Platforms:

If you need mxODBC Connect Server for platforms not mentioned here, please contact support@egenix.com for details. It is very likely that we can find a way to help you.

Download of the mxODBC Connect Client

mxODBC Connect Client is a Python extension package suitable for installation on a wide variety of client platforms. It is needed to communicate with the mxODBC Connect Server.

Please note:

  1. Before continuing with the download of mxODBC Connect Client, please first make sure that you have installed the eGenix.com mx Base Distribution, since the eGenix.com mxODBC Connect Client is an add-on to our base set of Python extensions.
  2. If you want to use SSL encrypted connections to the mxODBC Connect Server, please also install the eGenix.com pyOpenSSL Distribution.
  3. Please identify which Python version you have installed. We have setup the default selections below to what you normally need for the platform's default Python installations.
  4. After successful download, please head on to the installation instructions below.
  5. Redistribution of these files is not allowed. Please contact the eGenix Sales Team for details about redistribution possibilities and terms.
IMPORTANT:
By downloading, installing or using the eGenix mxODBC Connect Client, you agree to the terms and conditions set forth in the eGenix.com Commercial License Agreement 1.2.0 together with the eGenix.com mxODBC Connect Client 1.0.0 General Proof of Authorization.

Windows (x86 - 32-bit):

Please always download the correct installer for your Python version, otherwise you won't be able to install the package.

All other platforms (including Windows x64):

For instructions on how to install these prebuilt distributions, please see the installation section below.

Source Code:

mxODBC Connect Client is a commercial product for which we do not make the source code available.

Installation of mxODBC Connect Server

IMPORTANT:
These are quick-install instructions. Please see the mxODBC Connect User Manual and Installation Guide for full details on installation and configuration of the mxODBC Connect Server.

The mxODBC Connect Server is shipped as installer EXE for Windows and as installation archive on Unix.

Note: During the installation process, the installer will ask for a directory where you've unzipped the license files, so please make sure you have these readily available. The installer will then copy the files into the server installation directory.

Windows Installer

Installation using the Windows installers is straight forward: just double-click on the installer EXE file and follow the instructions.

Unix Installer

On Unix, you have to untar the installation archive, cd into the installation directory and then run the ./install command as root, e.g.

sudo ./install 

The installer will then ask a few questions and guide you through the installation process.

Installation of mxODBC Connect Client

IMPORTANT:
These are quick-install instructions. Please see the mxODBC Connect User Manual and Installation Guide for full details on installation and configuration of the mxODBC Connect Client.

The mxODBC Connect Client package installation works just like for our other Python extension packages.

Windows Installer

Installation using the Windows installers is straight forward: just double-click on the installer EXE or MSI file and follow the instructions.

Both installers register the distribution with the Windows software registry, so you can easily uninstall the distribution should you require to do so.

With the new MSI installer you also have the option to run the installer without the GUI or to integrate it into an automatic installation process. Please see the MSI installer documentation on the Python web-site for details.

To uninstall the distribution, please use the standard Windows software registry.

Prebuilt Distribution Installation

To reduce the number of binaries that we have to create for each release, we have adapted a new generic distribution format that works on all Python platforms: the Prebuilt Distribution Format.

Technically, this format is a standard Python distutils distribution, but with only the build/ directory and without the source tree.

System-wide Installation

In order to install such a distribution, please follow these instructions:

  1. Download and unzip the archive into a temporary directory
  2. Change into the distribution directory
  3. Run the following command using the Python interpreter with which you intend to work (this could be the default one, or an application specific one depending on your needs):
    sudo python setup.py install

The distribution will then be installed into the standard directory for Python extensions of your Python installation (usually the site-packages/ subdirectory of the Python standard library directory).

To uninstall, follow the same steps as above, but use the command uninstall instead:

sudo python setup.py uninstall

User Installation

You will need to be able to sudo on the target machine or know the root password for the above to work. If you don't have permission to install packages as root, you can still install the distribution into a local directory, e.g. ~/lib/python2.4 by using the following installation command:

python setup.py install --home=/home/user/

This will install the distribution into the directory /home/user/lib/python/. In order to have Python see this directory and make it useable for import, you have to adjust the PYTHONPATH environment variable to include this directory, e.g.

export PYTHONPATH /home/user/lib/python 

To see all the possible installation options, run the install script using the help options:

python setup.py install --help

To uninstall, follow the same steps as above, but use the command uninstall instead:

sudo python setup.py uninstall --home=/home/user/

Support

eGenix offers these support options:

Commercial Support

Professional level support for this product as well as all other eGenix products and Python itself is available directly from the developers at eGenix.com.

Consulting

eGenix.com offers professional consulting services for all questions and tasks around this product, including customized modifications, help with integration and on-site problem solving. Please contact sales@egenix.com for details.

Free User Support

In order for our users to keep in touch and be able to help themselves, we have created the egenix-users user mailing list.

History & Changes

Please see the change log for details regarding changes to the package between releases.

Notices

mxODBC Connect Server: This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com). This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)