Ich habe eine Textdatei, die mit vbs endet, die ich folgend in geschrieben habe:Wie führe ich ein VBScript im 32-Bit-Modus auf einem 64-Bit-Rechner aus?
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
- Wenn ich ausführen diese auf einer Windows 32-Bit-Maschine läuft und endet ohne jede Vorstellung (erwartet) .
- Wenn ich ausführen dieses auf einem Windows 64-Bit-Maschine es den Fehler
Provider bekommt kann nicht gefunden werden. Es ist möglicherweise nicht richtig installiert.
Aber es installiert ist. Ich denke, die Wurzel des Problems ist, dass der Anbieter ein 32-Bit-Anbieter ist, soweit ich weiß, existiert es nicht als 64-Bit.
Wenn ich das VBScript über IIS auf meinem 64-Bit-Rechner (als ASP-Datei) ausführen, kann ich auswählen, dass es im 32-Bit-Modus ausgeführt werden soll. Es kann dann den Anbieter finden.
Wie kann ich den Provider unter Windows 64-Bit finden? Kann ich CScript (das die .vbs-Textdatei ausführt) irgendwie im 32-Bit-Modus ausführen?
Bitte beachten Sie, dass auch mit 32-Bit Cscript nicht alle Datenbankanbieter werden arbeiten. Wenn der Anbieter ein Treiber ist (Beispiel: SQLite), funktioniert es nicht. Sie müssen 64-Bit-SQLite-Treiber stattdessen auf Windows 64-Bit installieren, damit der Anbieter in Cscript 64-Bit (und 32-Bit-Cscript auf 64-Bit) funktioniert. – jaysponsored
ODBC-Treiber sind überhaupt keine OLEDB-Provider. Diese werden normalerweise mit ADO über den Shim-Provider "MSDASQL" verwendet, der aus Kompatibilitätsgründen der Standardanbieter ist. Natürlich, wenn Sie die noch mehr veralteten System-DSNs in den Mix einbringen, werden die Dinge aufgrund von Sichtbarkeitsproblemen in der Registry heikel. – Bob77