Accueil Compétences Patterns Script batch Visual Basic Script vbs, adodb, odbc 32 sur les architectures 64bits

vbs, adodb, odbc 32 sur les architectures 64bits

Clique:
4912

Réponse

Voici un petit code à placer au début de vos scripts pour leur permettre de fonctionner sans vous soucier si vous êtes sur un environnement 32 ou 64bit

EN environnement 64bit, le programme executant les script par défaut est le 32bit, or la connection odbc ne fonctionne pas, vous aurez un message du type

[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application.
Code:  80004005
Source:  Microsoft OLE DB Provider for ODBC Drivers

Ces quelques lignes permettent de détecter l'environnement où l'on se trouve et de relancer le script avec le bon Wscript.exe

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'Gestion du 32 ou 64 bits
 
Set obj=CreateObject("Scripting.FileSystemObject")
Set oWs = CreateObject("WScript.Shell")
 
' Si on a lancé le programme avec la version 32 bits 
' et que l'on est en environnement 62 bits
If InStr(WScript.FullName, "C:\Windows\System32\") _
   And obj.FolderExists("C:\Windows\SysWow64") Then
 
    ' on relance le script avec le bon programme
    oWs.Run "C:\Windows\SysWow64\WScript.exe """ & WScript.ScriptFullName & """"
    WScript.Quit
End If