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