DbExpress drivers for MySQL V5.0

The Borland-supplied dbExpress drivers for MySQL prior to Delphi 2007 only work up to version V4.0 of MySQL, even though version V5.0 is becoming increasingly popular, and V5.1 is now in beta. The Just Software Solutions dbxOpenMySQL5 drivers provide a drop-in replacement for the vast majority of cases, allowing easy transition to the newer versions of MySQL.

Details about new versions will be posted as part of our RSS feed.

License and Support

This driver is released under the LGPL, so is provided free of charge, on an as-is basis. There is no warranty or guaranteed support.

For more immediate response, please consider hiring us to make the change.

Donations

If you find this driver useful, and would like to support the development of new features and bug fixes, please make a donation by clicking on the button below.

Features

  • Works with Delphi 6, Delphi 7, and Borland Developer Studio 2006.
  • Works with MySQL V5.0.
  • Available as a DLL, or as source code for static linking.
  • Supports all MySQL Data types.
  • Supports transactions for MySQL tables with appropriate storage engines (i.e. InnoDB or BDB).
  • Support for alternate character sets using the ServerCharSet connection parameter (even on BDS2006, despite the bug in the BDS2006 runtime).
  • Large BLOB support.
  • Supports TSQLTable.
  • Supports design-time table access within the IDE.
  • Works when DecimalSeparator is set to something other than '.', as is common in non-English locales.

Downloads

The source code and compiled DLL for version 1.3 are available for download:

Installation instructions

For full instructions see the install.txt file in each .zip.

Copy the DLL somewhere on your path. You will also need an appropriate (V5.0) libmysql.dll on the path.

If you're setting your dbexpress stuff up in the IDE, append the contents of the .ini files to the existing ones of the same name in your Delphi installation.

If you're setting up the dbexpress stuff programmatically, then you need something like:

  
var
  Connection: TSQLConnection;
begin
  Connection := TSQLConnection.Create(nil);
  Connection.DriverName := 'dbxmysql';
  Connection.GetDriverFunc := 'getSQLDriverMYSQL50';
  Connection.LibraryName := 'dbxopenmysql50.dll';
  Connection.VendorLib := 'libmysql.dll';
  Connection.Params.Append('Database=NAME_OF_DATABASE);
  Connection.Params.Append('User_Name=NAME_OF_USER');
  Connection.Params.Append('Password=PASSWORD');
  Connection.Params.Append('HostName=localhost');
  Connection.Open;

  // ... do stuff

  Connection.Free;
end;

This has been tested with Delphi 7 and BDS2006. I have also had reports that it works with Delphi 6. It may or may not work with other versions — I would be grateful of any reports of success or otherwise.

Acknowledgements

Thanks to challge for developing the original OpenDbx driver for MySQL 4.1, on which this is based.

Thanks also to Bob Marietta, who has helped me iron out problems by providing simple, repeatable test cases that demonstrated the bugs he found.

[ / delphi]