ODBC Integration MariaDB/MySQL

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Barthandelus
Niveau 4
Niveau 4
Messages : 51
Enregistré le : mer. 02 janv. 2019 14:34
Status : Hors ligne

ODBC Integration MariaDB/MySQL

#1

Message par Barthandelus »

Bonjour,

Je programme une supervision et la migration de mes serveurs SQL a fait que j'ai besoin d'intégrer MariaDB ODBC Driver pour me connecter à ma nouvelle base de donnée. Hors voilà je n'arrive pas à obtenir la valeur dans le Registre Windows sur ce driver pour une raison que je n'arrive pas à identifier.
Func _MySQLConnect($user, $pass, $bdd, $host, $driver = "MariaDB ODBC 3.1 Driver", $port = 3306)
   Local $key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
   Local $val = RegRead($key, $driver)

   MsgBox(1, "PREVIOUS ERROR", $driver&" ["&$val&"]")

   ; Suite du code inutile
EndFunc
Image

Lorsque je met "MySQL ODBC 3.51 Driver" en argument, j'obtient bien la donnée $val = "Installed", mais ce n'est pas le cas pour "Maria ODBC 3.1 Driver". J'ai redémarrer mon poste en pensant que c'était lié à une initialisation quelconque, mais non, rien y fait.

Une idée ?
Avatar du membre
sylvanie
Modérateur
Modérateur
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: ODBC Integration MariaDB/MySQL

#2

Message par sylvanie »

Bonjour
Dans un premier temps, il faudrait faire un consolewrite de @error juste après le regread pour vérifier qu'on n'a pas une erreur de lecture.
Puis, si on n'a pas de soucis de ce côté, vérifier que la clé se nomme bien "MariaDB ODBC 3.1 Driver" en contrôlant avec un RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers",$indice=1,2...) pour voir si la valeur retournée n'ai pas un espace ou une tabulation cachée ... c'est un peu tiré par les cheveux, mais ça permet d'avoir le nom exact de la clé.

Sinon, que retourne la lecture si ce n'est pas installed ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre