Bonjour à tous,
J'ai développé une application en vb6 utilisant une base de données Access.
Lors de son déploiement sur certains postes, la connexion à la BDD échoue.
Cela ne fonctionne pas du tout avec windows 98, mais fonctionne un peu mieux
avec Win98 SE. Le problème se pose même sur certains ordinateurs équipés de
Windows XP ou Vista (5 à 10 % d'échec) !
Voici le code VB utilisé pour la connexion à la BDD :
Dim My_Connection As ADODB.Connection
Set My_Connection = New ADODB.Connection
My_Connection.ConnectionTimeout = 15
My_Connection.CommandTimeout = 30
Str_connexion = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" + App.Path +
"\" + Nom_BDD + ";Uid=;Pwd=" + Mot_De_Passe_BDD + ";"
If My_Connection.State = adStateOpen Then
My_Connection.Close
End If
My_Connection.Open Str_connexion
While (My_Connection.State = adStateConnecting)
DoEvents
Wend
Pour le déploiement de l'application, j'utilise « Inno Setup Compiler
5.1.6 » (J'utilise bien MDAC). Voici le contenu du fichier de déploiement :
[Tasks]
Name: MDAC; Description: Microsoft Data &Access Components;
GroupDescription: Compléments:; Flags: checkedonce restart; MinVersion:
4.0,4.0; OnlyBelowVersion: 0,5.0
[Files]
; [Bootstrap Files]
Source: Fichiers2\COMCAT.DLL; DestDir: {sys}; Flags: restartreplace
uninsneveruninstall sharedfile regserver
Source: Fichiers2\msvbvm60.dll; DestDir: {sys}; Flags: restartreplace
uninsneveruninstall sharedfile regserver
Source: Fichiers2\Vb6fr.dll; DestDir: {sys}; Flags: uninsneveruninstall
sharedfile onlyifdoesntexist
; @vbscript.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,19/08/04 2:09:48
PM,417792,5.6.0.8820
Source: Fichiers2\vbscript.dll; DestDir: {sys}; Flags: restartreplace
uninsneveruninstall sharedfile regserver
; @mscomctl.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),3/8/04 11:00:00
PM,1081616,6.1.97.82
Source: Fichiers2\mscomctl.ocx; DestDir: {sys}; Flags: promptifolder
regserver sharedfile
; @MSWINSCK.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/23/98 11:00:00
PM,108336,6.0.81.69
Source: Fichiers2\MSWINSCK.OCX; DestDir: {sys}; Flags: promptifolder
regserver sharedfile
; @tabctl32.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),12/5/00 6:00:00
PM,209608,6.0.90.43
Source: Fichiers2\tabctl32.ocx; DestDir: {sys}; Flags: promptifolder
regserver sharedfile
; @MSFLXGRD.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/7/99 12:00:00
AM,244232,6.0.84.18
Source: Fichiers2\MSFLXGRD.OCX; DestDir: {sys}; Flags: promptifolder
regserver sharedfile
Source: Fichiers2\mshtml.tlb; DestDir: {sys}; Flags: uninsneveruninstall
regtypelib
; [Setup1 Files]
Source: Fichiers2\MDAC_TYP.EXE; DestDir: {app}; Flags: promptifolder
deleteafterinstall nocompression; Tasks: MDAC
; @bdd.mdb,$(AppPath),,,12/6/05 2:53:46 AM,659456,0.0.0.0
Source: bdd.mdb; DestDir: {app}; Flags: promptifolder
; @Appli.exe,$(AppPath),,,12/6/05 7:28:02 AM,929792,1.0.0.0
Source: \ Appli.exe; DestDir: {app}; Flags: promptifolder sharedfile
ignoreversion
;Windows XP et Sup
Source: Fichiers2\asycfilt.dll; DestDir: {sys}; Flags: uninsneveruninstall
sharedfile onlyifdoesntexist; MinVersion: 0,5.01.2600
Source: Fichiers2\oleaut32.dll; DestDir: {sys}; Flags: uninsneveruninstall
sharedfile regserver onlyifdoesntexist; MinVersion: 0,5.01.2600
Source: Fichiers2\olepro32.dll; DestDir: {sys}; Flags: uninsneveruninstall
sharedfile regserver onlyifdoesntexist; MinVersion: 0,5.01.2600
Source: Fichiers2\stdole2.tlb; DestDir: {sys}; Flags: regtypelib ;
MinVersion: 0,5.01.2600
;avant Windows XP
Source: Fichiers1\asycfilt.dll; DestDir: {sys}; Flags: uninsneveruninstall
sharedfile onlyifdoesntexist; OnlyBelowVersion: 0,5.01.2600
Source: Fichiers1\oleaut32.dll; DestDir: {sys}; Flags: uninsneveruninstall
sharedfile regserver onlyifdoesntexist; OnlyBelowVersion: 0,5.01.2600
Source: Fichiers1\olepro32.dll; DestDir: {sys}; Flags: uninsneveruninstall
sharedfile regserver onlyifdoesntexist; OnlyBelowVersion: 0,5.01.2600
Source: Fichiers1\stdole2.tlb; DestDir: {sys}; Flags: regtypelib;
OnlyBelowVersion: 0,5.01.2600
[Registry]
;MDAC 2.0+
Root: HKCU; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce;
ValueType: string; ValueName: MDAC_Setup; ValueData:
"""{%TEMP}\mdac_typ.exe"" /Q /C:""setup /QT"""; MinVersion: 4.0,0; Tasks:
MDAC
[Run]
; START MDAC 2.0+
Filename: {app}\mdac_typ.exe; Parameters: "/Q /C:""setup /QNT""";
WorkingDir: {tmp}; Flags: skipifdoesntexist; Tasks: MDAC; MinVersion: 4.1,0
Si vous avez une idée de la source du problème je suis preneur car je suis
un peu à cours d'idées en ce moment.
J'aimerai bien pouvoir supprimer MDAC pour le remplacer par des fichiers
moins lourds, mais ce n'est pas une priorité.
Merci de jeter un coup d'oeil également sur le fichier de déploiement pour
voir si ça vous semble correct.
Merci d'avance et bonne fin de journée.