Du kannst mal mein
Datenbank Zugriffs Modul verwenden um einige Versionen und Kombinationen auszutesten.
Einfach "zu Fuß" in der configdb.ini oder im Beispielprogramm einige Testkombinationen anlegen und versuchen eine Verbindung herzustellen.
Dass MariaDB bei SQLdb so vernachlässigt wird verstehe ich auch nicht aber ich kann problemlos mit einem 5.6 Connector und einer 5.66 library auf eine 10.4 MariaDB zugreifen.
Database Name: test
Database Connector: MySQL 5.6
Database Version: 10.4.27-MariaDB
Library: libmariadb.dll version 5.66
Wenn du die Zugriffsbibliothek manuell zuweist (es also nicht dem SQLConnector überlässt die namentlich richtige Datei auszusuchen) scheint der Namen der Bibliothek unerheblich zu sein.
Die Versionsprüfung macht er aber trotzdem. Es gibt einen Schalter der die Versionsprüfung aussschaltet, der ist aber von außen über einen TSQLConnector nicht erreichbar.
in mysqlconn.inc steht:
Code: Alles auswählen
MariaDBVersion =
{$IFDEF mysql57}
'10.';
{$ELSE}
{$IFDEF mysql56} // MariaDB 10.0 is compatible with MySQL 5.6
'10.';
{$ELSE} // MariaDB 5.1..5.5 presumably report the same version number as MySQL
MySQLVersion;
{$ENDIF}
{$ENDIF}
und weiters
Code: Alles auswählen
procedure TConnectionName.DoInternalConnect;
var
FullVersion: string;
begin
InitialiseMysql;
if not SkipLibraryVersionCheck then
begin
FullVersion:=strpas(mysql_get_client_info());
// 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]);
end;
inherited DoInternalConnect;
ConnectToServer;
SelectDatabase;
end;
Der interne Connect negiert also tapfer MariaDB ('tough luck') hat aber eine Möglichkeit die Versionsprüfung abzuschalten. Diese Möglichkeit wird im
TSQLConnector (also dem Proxy für alle DB-Verbindungen) nicht durchgereicht. In einer
TMySQL80Connection allerdings kannst du per
SkipLibraryVersionCheck im Objektinspektor den Versionscheck wohl abschalten.
Ein Versuch wäre es allemal wert.