|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() jean mauryInscription : mars 2009 Messages : 116 ![]() |
Bonjour.
J'aimerai detecter la version du pilote MYSQL installee sur l'ordinateur sur lequel est execute le fichier Access. Je sais que dans la base de registre se trouvent les differentes informations sur les pilotes ODBC. Plus precisement sous Hkey_local_machine/software/ODBC/ODBCINST.INI/. Le probleme, c'est qu'il y a tres peu de detail. Pour Mysql, il est indique les differents chemins comme "C:\Program Files\MySQL\Connector ODBC 5.1\myodbc5.dll". Comme ce sont des fichiers dll je ne sais pas comment verifier si je peux y recuperer l'info desiree. De plus je ne sais pas si l'info y est contenue. J'aimerai detecter si la version du pilote ODBC pour Mysql est la 5.1.8 (ou superieure) et non une precedente. Comment peut on faire ? J'ai cherche sur internet et n'ai trouve que les differentes manieres de se connecter par ODBC, de creer une liaision ODBC. Mais pas comment retrouver la version du pilote. Sur internet, sur http://allapi.mentalis.org, j'ai trouve quelque chose comme ce qui est ci-dessous : Code :
Ceci-dit, ce programme a pour but de recuperer la liste des pilotes ODBC mais je ne suis pas sur que je puisse recuperer l'info sur la version d'un pilote precis. Y a t il un autre moyen ou ce moyen permettrait il de recuperer la version du pilote ODBC MySQL installe sur l'ordinateur ? Merci. Cdlt. |
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Je crois avoir trouvé un autre moyen.
Code :
Code :
|
||||
|
|
10
|
|
|
#3 | ||||
|
Membre habitué
![]() jean mauryInscription : mars 2009 Messages : 116 ![]() |
Bonjour.
Merci pour cette reponse qui resoudra mon besoin. Etant donne que j'ai le pilote Mysql 5.1 sur mon ordi, j'ai modifie le module de lancement de telle maniere : Code :
Sur l'ordinateur ou est installee la version 5.01.05.00, j'ai le message "Aucun pilote n'a été trouvé". J'ai essaye de voir dans la fonction : Code :
Il s'est alors arrete je suppose sur le 1er driver trouve : Sql server. Ce qui est logique. J'ai alors rajoute un point d'arret sur la ligne : et, lorsque j'ai relance le programme il ne s'est pas arrete sur le point d'arret donc il n'a pas trouve la valeur "MySQL ODBC 5.1 Driver". A quoi ca peut etre du ? Y a t il une des fonction ou il faut modifier une valeur ? Dans la base de registre je retrouve bien, dans HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\, le catalogue "MySQL ODBC 5.1 Driver" puis dans ce dernier catalogue la valeur "Driver". Merci. Cdlt |
||||
|
|
00
|
|
|
#4 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
La fonction SQLGetInstalledDrivers de l'API ODBC lit le contenu de la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers C'est la fonction dont se sert l'administrateur de source de données ODBC (odbcad32.exe ou odbccp32.cpl). J'ai fait un test chez moi. Si je supprime la valeur nommée "MySQL ODBC 3.51 Driver" dans la sous-clé ODBC Drivers, l'administrateur de source de données ODBC ne voit plus le pilote, bien que la sous-clé "MySQL ODBC 3.51 Driver" existe toujours, avec ses valeurs nommées CPTimeout, Driver, Setup, et UsageCount. Pour moi, sur l'ordinateur où est installée la version 5.01.05.00, le pilote est mal installé, ou en tout cas pas de la manière attendue. Vérifie si tu le vois avec odbcad32.exe. De mon côté je regarde si la fonction SQLDrivers (ODBC 2 contre ODBC 1 pour SQLGetInstalledDrivers) fonctionne différemment. Je l'ai laissée de côté car elle nécessite plus de code et de déclarations API. A+ |
|
|
10
|
|
|
#5 | ||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Rebonsoir,
SQLDrivers fonctionne selon le même principe que SQLGetInstalledDrivers. J'ai réécrit la fonction GetDrvVersion en changeant la logique d'énumération des pilotes. J'énumère les sous-clés de HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI à la recherche du pilote demandé. J'ai trouvé une méthode sans API dans WMI. J'espère qu'il n'y a pas de problème de niveaux d'autorisations pour lire la base de registre par code. Code :
|
||
|
|
10
|
|
|
#6 |
|
Membre habitué
![]() jean mauryInscription : mars 2009 Messages : 116 ![]() |
Bonjour LedZeppII.
Merci pour la nouvelle version de la fonction GetDrvVersion. Avec ca j'obtient bien le message comme quoi je dois avoir au minimum 5.01.08.00 sur l'ordi ayant le pilote ODBC Mysql 5.01.05.00. Ca fonctionne. Merci beaucoup pour cette aide. Cdlt. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com