MySql 5.7 drivers
Posted: 04.10.2016, 10:28
Hi
Linux Ubuntu 16.04 LTS software repository includes MySql 5.7 and the drivers are libmysql.so.20
To allow a seamless installation of Zeos based application, I think ZPlainMySqlDriver should be modified like this :
and
I have patched my ZeosLib 7.1.4 stable like this and it works for me. I have only Lazarus and can't test with Delphi/Windows.
Is it possible to include this in 7.2 ?
I don't know if MySql 5.6 is distributed (libmysql.so.19) with some Windows or Linux versions. Maybe it could be added too...
Best regards
Linux Ubuntu 16.04 LTS software repository includes MySql 5.7 and the drivers are libmysql.so.20
To allow a seamless installation of Zeos based application, I think ZPlainMySqlDriver should be modified like this :
Code: Select all
unit ZPlainMySqlDriver;
interface
{$I ZPlain.inc}
uses Classes, {$IFDEF MSEgui}mclasses,{$ENDIF}
ZPlainDriver, ZCompatibility, ZPlainMySqlConstants;
const
MARIADB_LOCATION = 'libmariadb'+ SharedSuffix;
{$IFNDEF UNIX}
{$IFNDEF MYSQL_STRICT_DLL_LOADING}
WINDOWS_DLL_LOCATION = 'libmysql.dll';
WINDOWS_DLL_LOCATION_EMBEDDED = 'libmysqld.dll';
{$ENDIF}
WINDOWS_DLL41_LOCATION = 'libmysql41.dll';
WINDOWS_DLL41_LOCATION_EMBEDDED = 'libmysqld41.dll';
WINDOWS_DLL50_LOCATION = 'libmysql50.dll';
WINDOWS_DLL50_LOCATION_EMBEDDED = 'libmysqld50.dll';
WINDOWS_DLL51_LOCATION = 'libmysql51.dll';
WINDOWS_DLL51_LOCATION_EMBEDDED = 'libmysqld51.dll';
WINDOWS_DLL55_LOCATION = 'libmysql55.dll';
WINDOWS_DLL55_LOCATION_EMBEDDED = 'libmysqld55.dll';
WINDOWS_DLL57_LOCATION = 'libmysql57.dll';
WINDOWS_DLL57_LOCATION_EMBEDDED = 'libmysqld57.dll';
{$ELSE}
{$IFNDEF MYSQL_STRICT_DLL_LOADING}
LINUX_DLL_LOCATION = 'libmysqlclient'+SharedSuffix;
LINUX_DLL_LOCATION_EMBEDDED = 'libmysqld'+SharedSuffix;
{$ENDIF}
LINUX_DLL41_LOCATION = 'libmysqlclient'+SharedSuffix+'.14';
LINUX_DLL41_LOCATION_EMBEDDED = 'libmysqld'+SharedSuffix+'.14';
LINUX_DLL50_LOCATION = 'libmysqlclient'+SharedSuffix+'.15';
LINUX_DLL50_LOCATION_EMBEDDED = 'libmysqld'+SharedSuffix+'.15';
LINUX_DLL51_LOCATION = 'libmysqlclient'+SharedSuffix+'.16';
LINUX_DLL51_LOCATION_EMBEDDED = 'libmysqld'+SharedSuffix+'.16';
LINUX_DLL55_LOCATION = 'libmysqlclient'+SharedSuffix+'.18';
LINUX_DLL55_LOCATION_EMBEDDED = 'libmysqld'+SharedSuffix+'.18';
LINUX_DLL57_LOCATION = 'libmysqlclient'+SharedSuffix+'.20';
LINUX_DLL57_LOCATION_EMBEDDED = 'libmysqld'+SharedSuffix+'.20';
{$ENDIF}
Code: Select all
constructor TZMySQL5PlainDriver.Create;
begin
inherited Create;
{$IFNDEF UNIX}
{$IFNDEF MYSQL_STRICT_DLL_LOADING}
FLoader.AddLocation(MARIADB_LOCATION);
{$ENDIF}
FLoader.AddLocation(WINDOWS_DLL50_LOCATION);
FLoader.AddLocation(WINDOWS_DLL51_LOCATION);
FLoader.AddLocation(WINDOWS_DLL55_LOCATION);
FLoader.AddLocation(WINDOWS_DLL57_LOCATION);
{$ELSE}
{$IFNDEF MYSQL_STRICT_DLL_LOADING}
FLoader.AddLocation(MARIADB_LOCATION);
{$ENDIF}
FLoader.AddLocation(LINUX_DLL50_LOCATION);
FLoader.AddLocation(LINUX_DLL51_LOCATION);
FLoader.AddLocation(LINUX_DLL55_LOCATION);
FLoader.AddLocation(LINUX_DLL57_LOCATION);
{$ENDIF}
end;
Code: Select all
constructor TZMySQLD5PlainDriver.Create;
begin
inherited Create;
// only include embedded library
FLoader.ClearLocations;
{$IFNDEF MYSQL_STRICT_DLL_LOADING}
{$IFNDEF UNIX}
FLoader.AddLocation(WINDOWS_DLL_LOCATION_EMBEDDED);
{$ELSE}
FLoader.AddLocation(LINUX_DLL_LOCATION_EMBEDDED);
{$ENDIF}
{$ENDIF}
{$IFNDEF UNIX}
FLoader.AddLocation(WINDOWS_DLL50_LOCATION_EMBEDDED);
FLoader.AddLocation(WINDOWS_DLL51_LOCATION_EMBEDDED);
FLoader.AddLocation(WINDOWS_DLL55_LOCATION_EMBEDDED);
FLoader.AddLocation(WINDOWS_DLL57_LOCATION_EMBEDDED);
{$ELSE}
FLoader.AddLocation(LINUX_DLL50_LOCATION_EMBEDDED);
FLoader.AddLocation(LINUX_DLL51_LOCATION_EMBEDDED);
FLoader.AddLocation(LINUX_DLL55_LOCATION_EMBEDDED);
FLoader.AddLocation(LINUX_DLL57_LOCATION_EMBEDDED);
{$ENDIF}
IsEmbeddedDriver := True;
end;
Is it possible to include this in 7.2 ?
I don't know if MySql 5.6 is distributed (libmysql.so.19) with some Windows or Linux versions. Maybe it could be added too...
Best regards