Ho un file di testo che termina con vbs che ho scritto quanto segue in:Come si esegue un VBScript in modalità a 32 bit su un computer a 64 bit?
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
- Quando eseguo questo su una macchina Windows a 32 bit viene eseguito e termina senza alcuna nozione (expected) .
- Quando eseguo questo su una macchina Windows a 64 bit ottiene l'errore
Provider non può essere trovato. Potrebbe non essere installato correttamente.
Ma è installato. Penso che la radice del problema è che il provider è un provider a 32 bit, per quanto ne so non esiste come 64-bit.
Se eseguo VBScript tramite IIS sulla mia macchina a 64 bit (come file ASP) posso selezionare che debba essere eseguito in modalità a 32 bit. Può quindi trovare il provider.
Come posso trovare il provider su Windows 64-bit? Posso dire a CScript (che esegue il file di testo .vbs) per funzionare in qualche modo in modalità 32-bit?
Si noti che anche utilizzando 32 bit Cscript non funzionerà tutti i provider di database. Se il provider è un driver (esempio: SQLite) non funziona. È necessario installare i driver SQLite a 64 bit su Windows 64-bit, in modo che il provider funzioni in Cscript a 64 bit (e Cscript a 32 bit su 64 bit). – jaysponsored
I driver ODBC non sono affatto provider OLEDB. Questi sono normalmente usati con ADO tramite lo shim Provider 'MSDASQL' che è il Provider predefinito per la compatibilità. Ovviamente se si introducono i DSN di sistema ancora più obsoleti nel mix, le cose si complicano a causa dei problemi di visibilità del registro. – Bob77