Bonjour,
Envoyé par
Michel
Merci pour l'info, je n'ai jamais utilisé ce composant; par contre, je n'ai aucun problème avec mysql dans d'autres applications et donc je pense que le problème viens bien de Lazarus.
Vous avez presque raison , ce sont les sources FPC relatives à MySql et plus particulièrement l'unité mysqlconn.inc où se trouve la procédure de connexion qui sont en cause. Le test sur les versions se font de manière très stricte : un client ne peut se connecter qu'en utilisant une bibliothèque de même version (les 2 premiers blocs : 5.0, 5.1, etc). Voici ci le code pour FPC 2.6.0 (ligne 408):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| procedure TConnectionName.DoInternalConnect;
var
FullVersion,
ClientVerStr: string;
begin
InitialiseMysql;
Fullversion:=strpas(mysql_get_client_info());
ClientVerStr := copy(FullVersion,1,3);
If (ClientVerStr<>MySQLVersion) then // ICI !!!
Raise EInOutError.CreateFmt(SErrVersionMisMatch,[ClassName,MySQLVersion,FullVersion]);
inherited DoInternalConnect;
ConnectToServer;
SelectDatabase;
end;
// MySQLVersion = '5.0' si on utilise TMySQL50Connection
// Fullversion = '5.5.16' dans mon cas |
S'il y a compatibilité ascendante au niveau de la bibliothèque, ils auraient pu écrire :
If (ClientVerStr >= MySQLVersion) then
Petit problème : si j'ai recompilé et déplacé les fichiers avec FPC, je n'ai pas réussi à le tester avec Lazarus : j'ai loupé quelque chose, mais je ne sais pas quoi !
Partager