summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorreiniero <reiniero@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-09-04 10:18:01 +0000
committerreiniero <reiniero@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-09-04 10:18:01 +0000
commit0fcfd2728d8d22525c00b272014f7eaca3e67d40 (patch)
treef1df02b18b4c61e8a7981f4a97783141d2d5822d
parent976c5bfe939cad8efa96ae8070867ef0fcbda1fb (diff)
downloadfpc-0fcfd2728d8d22525c00b272014f7eaca3e67d40.tar.gz
+ fcl-db: mysql 5.6 connector: add support for MariaDB 10.0. Should fix isseu #26620. Needs testing.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@28593 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/fcl-db/src/sqldb/mysql/mysqlconn.inc16
1 files changed, 12 insertions, 4 deletions
diff --git a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc
index 648227e822..a054287146 100644
--- a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc
+++ b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc
@@ -59,6 +59,12 @@ Const
{$endif}
{$endif}
{$ENDIF}
+ MariaDBVersion =
+{$IFDEF mysql56} // MariaDB 10.0 is compatible with MySQL 5.6
+ '10.0';
+{$ELSE} // MariaDB 5.1..5.5 presumably report the same version number as MySQL
+ MySQLVersion;
+{$ENDIF}
Type
TTransactionName = Class(TSQLHandle)
@@ -459,13 +465,15 @@ end;
procedure TConnectionName.DoInternalConnect;
var
- FullVersion,
- ClientVerStr: string;
+ FullVersion: string;
begin
InitialiseMysql;
Fullversion:=strpas(mysql_get_client_info());
- ClientVerStr := copy(FullVersion,1,3);
- If (ClientVerStr<>MySQLVersion) then
+ // Version string should start with version number:
+ // Note: in case of MariaDB version mismatch: tough luck, we report MySQL
+ // version only.
+ if (pos(MySQLVersion, Fullversion) <> 1) and
+ (pos(MariaDBVersion, Fullversion) <> 1) then
Raise EInOutError.CreateFmt(SErrVersionMisMatch,[ClassName,MySQLVersion,FullVersion]);
inherited DoInternalConnect;
ConnectToServer;