Tengo un archivo de texto que termina con .vbs que he escrito lo siguiente en:¿Cómo ejecuto un VBScript en modo de 32 bits en una máquina de 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
- Cuando ejecuto esto en una máquina de 32 bits de Windows que se ejecuta y termina sin ninguna noción (esperado) .
- Cuando ejecuto esto en una máquina de 64 bits de Windows aparece el error
proveedor no se puede encontrar. Puede que no esté instalado correctamente.
Pero está instalado. Creo que la raíz del problema es que el proveedor es un proveedor de 32 bits, hasta donde sé que no existe como de 64 bits.
Si ejecuto VBScript a través de IIS en mi máquina de 64 bits (como un archivo ASP), puedo seleccionar que se ejecute en modo de 32 bits. A continuación, puede encontrar el proveedor.
¿Cómo puedo hacer que encuentre el proveedor en Windows de 64 bits? ¿Puedo decirle a CScript (que ejecuta el archivo de texto .vbs) que se ejecute en modo de 32 bits de alguna manera?
Tenga en cuenta que incluso con 32 bits Cscript no todos los proveedores de bases de datos van a funcionar. Si el proveedor es un controlador (ejemplo: SQLite), no funciona. En su lugar, debe instalar los controladores SQLite de 64 bits en Windows de 64 bits, por lo que el proveedor funcionará en cscript de 64 bits (y en cscript de 32 bits en 64 bits). – jaysponsored
Los controladores ODBC no son proveedores OLEDB en absoluto. Estos se usan normalmente con ADO a través del proveedor de cuñas 'MSDASQL' que es el proveedor predeterminado para la compatibilidad. Por supuesto, si traes los DSN del sistema aún más obsoletos a la mezcla, las cosas se ponen feas debido a problemas de visibilidad del registro. – Bob77