MySQL?-to-ODBC Gateway

Introduction

What

The MySQL?-ODBC SDK enables you to make MySQL?-specific applications database-independent without wholesale re-writes of your application code. Thus, applications that are written directly to the MySQL? call level interface now end up being database independent via iODBC, and usable against any ODBC accessible database (including MySQL?).

Why

The Open-Source community is rapidly producing innovative applications which, in many cases, require relational database services. Traditionally and historically, the tendency has been to look to MySQL? as the default relational database service for Open Source Applications (the "M" in LAMP) which is unfortunately retreogressive since the concept of database indpendence has long been addressed industry wide via APIs such as ODBC, JDBC, OLE DB, and more recently .NET. In some case the existence of these APIs has been unknown to Open Source developers prior to application development, and in other cases the complexity of a port from the MySQL? API to ODBC simply too difficult.

There are numerous reasons why you can't mandate MySQL? or any other database engine for that matter to every potential user of an Open Source database centric application:

ODBC as a concept has always been designed to be database-independent; iODBC as an Open Source project was devised to ensure platform neutrality for ODBC (just as Mono is pursuing the same goals re. .NET). When you write an application using the ODBC API database interchangeablity becomes a reality.

How does the bridge work ?

PHP,Python and Perl each have MySQL?-binding layers (likewise any other MySQL? application), and all that you need to do is rebuild the MySQL? binding layer by following the steps below:


make

and wait while it compiles


make install

This will create $PREFIX/lib/libmysqlclient.so.10.0.0 and assorted symlinks around it.


LD_LIBRARY_PATH=/usr/local/mysql2odbc/lib ./mtest -u dba -p dba -d "Local Virtuoso"

This should present a very simple UI from which SQL statements may be executed - try a


select * from sys_users

Download

The current source of this package can be downloaded from this location, and is released under the terms of the LGPL license.

Bug Fixes

If you find a bug and have the know-how to fix it, please create a "diff file" using GNU's "diff", preferably with "context" (diff -c or diff -u).

If the patch is small, add the patch file as an attachment to your mail if possible, otherwise tell us where we can pick it up. This will reduce the turnaround time for new updates etc.

CVS Access

We currently provide read-only CVS Archive access from SourceForge.net :


cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mysql2odbc login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mysql2odbc co mysql2odbc

(The password is blank.)

Patches and new contributions can be submitted as diffs from the current archive by:


$ cvs add newfiles
$ cvs -z3 diff -uN > diffs

Diffs and contributions can be send to the OpenLink? iODBC source archive manager at [[mailto:iodbc@openlinksw.com][<none>]] to be included the next distribution. Please provide accompanying documentation on which bugs are fixed or new features are introduced.