|
|
IBPhoenix Development |
|
IBPhoenix Open Source ODBC Driver |
|
Use Right Click and Save As to download. Latest Installable BuildsVersion 1.2
Version 2.0 RC1
Version 1.2.1 (V1.2.00.0070) Latest Libraries
V1.3 (Beta V1.03.00.0096) Latest Libraries
V2.0 Release Candidate 1 Libraries
Examples
Examples Using ADO (VB)
Interested in doing some development?Firstly, you'll need to check the source out via CVS. The source tree is located within the Firebird project on SourceForge. This is the most reliable way to get the latest code. You do not have to be a member of the Firebird project to gain access to it.
To download the source you need to have a CVS client available. Use the following two commands: cvs -d:pserver:anonymous@firebird.cvs.sourceforge.net:/cvsroot/firebird login cvs -z3 -d:pserver:anonymous@firebird.cvs.sourceforge.net:/cvsroot/firebird co OdbcJdbc There is an MSVC workspace for building the driver for Win32. Make OdbcJdbcSetup the active project and do a build all. There are also make files for other platforms (e.g. Linux and FreeBSD). Want to talk to other developers working on the driver?You can subscribe to a list server dedicated to the discussion of driver development issues. Legal stuff you need to cast a cursory glance at
The driver is available under the Initial Developers Public Licence (IDPL).
This is a variation of the InterBase Public Licence (IPL). You can see the
licence here. TechnicalFrom a posting by Jim Starkey on IB-Architect, 30th May 2000.Below is the formal specification of the C++ Jdbc interface that I'm developing as part of the Odbc implementation. Things that I expect to change before opening the code include:
for (int l, offset=0;
l=blob->getSegmentLength(offset); offset +=l)
printf ("%*s", length, blob->getSegment (offset));
I have temporarily ducked the question of unicode. I think the best solution
would to double up all setString and getString calls with getUnicodeString and
setUnicodeString. There is a trend towards obscuring the different between
Ascii and Unicode with conditional declarations, making most source bi-modal,
that I am not comfortable with.
I have also added a StatementMetaData class to support Odbc with functionality not in Jdbc. Necessary, but not a biggie. I haven't (yet) defined an analog for the Jdbc DriverManager. Connections, for the time being, are created by calling "createConnection" against a known (or loaded) library to get an initial connection object. If (or when) I add a driver manager, it will almost certainly use this mechanism. Object lifetimes are a little muddled. The Connection object uses the method close() a la Jdbc. Statement and ResultSet have retained close() but also have more civilized addRef() and release(); close() indeed makes the sucker go away, so the two mechanism are sort of complementary. Maybe we should flush close(). The metadata objects (DatabaseMetaData, ResultSetMetaData, and StatementMetaData) live and die with their parent objects. Blobs and Close have only the addRef and release() mechanisms. The DatabaseMetaDataClass, straight out of Jdbc, is an interesting catalog of almost everything wrong with the SQL standard. Like Jdbc, there is not explicit support for multiple transactions per process. To get them, multiple attachments are required. There is a temptation to add a clone() method to Connection simplify the coding and allow sharing is the InterBase database attachment. |