Forum > Databases

MariaDB support and extended functions for TSQLConnector

(1/1)

CharlyTango:
Using TSQLConnector to connect to multiple database servers is an elegant variant. However, a popular server like MariaDB is handled only rudimentarily.

found in mysqlconn.inc

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} --- 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}
and


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---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;
The built-in version check, which makes sense for a proxy object (especially when TSQLConnector searches for the access library itself), becomes a problem when current or old versions are not supported.


--- Quote ---The MySQL80Connection can not work with the installed MySQL Client Version: Expected (8.0), got (10.5.18).
--- End quote ---

You can assign any access library to TSQLConnector using TSQLDBLibraryLoader, but then the version control takes effect.

In the direct access components like TMySQL80Connection this is solved with an attribute SkipLibraryVersionCheck which disables the version check.

Unfortunately SkipLibraryVersionCheck is not passed through to TSQLConnector which leads to version conflicts again and again.

Who do I need to contact to make two requests?

1_ Include SkipLibraryVersionCheck in TSQLConnector. Possibly only switchable if TSQLDBLibraryLoader is used.

2_ Better support for MariaDB which is more common in smaller and larger environments due to MySQL ownership.

Thaddy:
File two bug reports on the bug tracker against fcl-db
1. for 1
2. for 2.

1. seems a potential bug while 2. seems a feature request, anyway the reports should be separated, since they are separate issues.

Navigation

[0] Message Index

Go to full version