Je dispose d'un fichier texte qui se termine par .vbs que j'ai écrit ce qui suit dans:Comment exécuter un VBScript en mode 32 bits sur une machine 64 bits?
Set Conn = CreateObject("ADODB.Connection")
Conn.Provider = "Microsoft.ACE.OLEDB.12.0"
Conn.Properties("Data Source") = "C:\dummy.accdb"
Conn.Properties("Jet OLEDB:Database Password") = "pass"
Conn.Open
Conn.Close
Set Conn = Nothing
- Lorsque j'exécute ceci sur une machine 32 bits de Windows il fonctionne et se termine sans aucune notion (attendue) .
- Lorsque j'exécute ceci sur une machine 64 bits de Windows, il obtient l'erreur
fournisseur ne peut pas être trouvé. Il se peut qu'il ne soit pas correctement installé.
Mais il est installé. Je pense que la racine du problème est que le fournisseur est un fournisseur 32 bits, autant que je sache, il n'existe pas en 64 bits.
Si j'exécute VBScript via IIS sur mon ordinateur 64 bits (sous la forme d'un fichier ASP), je peux choisir de l'exécuter en mode 32 bits. Il peut ensuite trouver le fournisseur.
Comment puis-je le faire trouver le fournisseur sur Windows 64 bits? Puis-je dire à CScript (qui exécute le fichier texte .vbs) de fonctionner en mode 32 bits en quelque sorte?
Veuillez noter que même en utilisant 32 bits Cscript tous les fournisseurs de bases de données ne vont pas fonctionner. Si le fournisseur est un pilote (exemple: SQLite), cela ne fonctionne pas. Vous devez installer des pilotes SQLite 64 bits sur Windows 64 bits à la place, de sorte que le fournisseur fonctionnera en 64 bits de cscript (et 32 bits en cscript sur 64 bits). – jaysponsored
Les pilotes ODBC ne sont pas du tout des fournisseurs OLEDB. Ceux-ci sont normalement utilisés avec ADO via le fournisseur de shim 'MSDASQL' qui est le fournisseur par défaut pour la compatibilité. Bien sûr, si vous amenez les DSN système encore plus obsolètes dans le mix, les choses deviennent risibles en raison des problèmes de visibilité du registre. – Bob77