Bonjour,
je viens de développer une application se connectant à une base de données IBM DB2 NT utilisant un lien ODBC.
j'ai récupérer un morceau de code sur le site permettant de ne pas déclarer ni configurer le lien ODBC sur chaque poste client.
le voici :
nomBase =
"x"
'Nom de la base (Data source name de la source ODBC)
nomServeur = "000.000.000.000" 'Nom du serveur (Service name de la source ODBC)
nomUt =
f"
'Nom d'utilisateur de connexion à la base
mdp =
"f"
'Mot de passe de l'utilisateur pour la connexion
'Déclaration de la source ODBC
strAttributs = "Database=" + nomBase + _
vbCr + "Description=" + nomBase + _
vbCr + "OemToAnsi=No" + _
vbCr + "Server=" + nomServeur + _
vbCr + "User=" + nomUt
DBEngine.RegisterDatabase nomBase, "IBM DB2 ODBC DRIVER", True, strAttributs
'Connexion à la base de données
Set dbs = OpenDatabase( _
nomBase, dbDriverCompleteRequired, True, _
"ODBC;DATABASE=" + nomBase + ";DSN=" + nomBase + ";UID=" + nomUt + ";pwd=" + mdp)
Ceci fonctionne tres bien sur mon poste, il crée l'ODBC si il n'existe
pas. J'ai testé de le supprimer de mon poste et en effet il le recrée à
chaque fois.
Mais lorsque je l'exécute sur un autre poste même en Debug via VB il plante sur la ligne :
DBEngine.RegisterDatabase nomBase, "IBM DB2 ODBC DRIVER", True, strAttributs
avec l'erreur :
Erreur d'exécution '3146'
ODBC -- l'appel a echoué
A mon avis c'est mon pilote DB2 qui n'est pas ou mal installé. Sauf que
sur mon poste de test, il apparaît bien dans la liste de mes pilote
disponible. Dans le cas où l'erreur proviendrait de ca comment
installer en ligne de commande la dll (qui se nomme db2cli.dll dans mon
cas), j'ai déja essayer dans un Shell : Regsvr32 db2cli.dll, mais j'ai
un retour erreur :
db2cli.dll a étét chargé mais le point d'entrée DllRegisterServer est introuvable. Ce fichier ne peut être entegistré.
Je ne sais plus quoi faire et ce projet est assez urgent.
Si quelqu'un pouvait me dépanner ? SVP
Anthony