Pet*_*ter 47 provider vbscript 64-bit 32-bit adodb
我有一个以.vbs结尾的文本文件,我在下面写了:
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
Run Code Online (Sandbox Code Playgroud)
无法找到提供商.它可能没有正确安装.
但它已安装.我认为问题的根源是提供者是32位提供者,据我所知它不存在为64位.
如果我在64位计算机上通过IIS运行VBScript(作为ASP文件),我可以选择它应该以32位模式运行.然后它可以找到提供者.
如何在Windows 64位上找到提供程序?我可以告诉CScript(执行.vbs文本文件)以某种方式在32位模式下运行吗?
vol*_*ody 69
请访问http://support.microsoft.com/kb/896456
要启动32位命令提示符,请按照下列步骤操作:
* Click Start, click Run, type %windir%\SysWoW64\cmd.exe, and then click OK.
Run Code Online (Sandbox Code Playgroud)
然后输入
cscript vbscriptfile.vbs
Run Code Online (Sandbox Code Playgroud)
小智 18
' C:\Windows\System32\WScript.exe = WScript.exe
Dim ScriptHost : ScriptHost = Mid(WScript.FullName, InStrRev(WScript.FullName, "\") + 1, Len(WScript.FullName))
Dim oWs : Set oWs = CreateObject("WScript.Shell")
Dim oProcEnv : Set oProcEnv = oWs.Environment("Process")
' Am I running 64-bit version of WScript.exe/Cscript.exe? So, call script again in x86 script host and then exit.
If InStr(LCase(WScript.FullName), LCase(oProcEnv("windir") & "\System32\")) And oProcEnv("PROCESSOR_ARCHITECTURE") = "AMD64" Then
' rebuild arguments
If Not WScript.Arguments.Count = 0 Then
Dim sArg, Arg
sArg = ""
For Each Arg In Wscript.Arguments
sArg = sArg & " " & """" & Arg & """"
Next
End If
Dim sCmd : sCmd = """" & oProcEnv("windir") & "\SysWOW64\" & ScriptHost & """" & " """ & WScript.ScriptFullName & """" & sArg
WScript.Echo "Call " & sCmd
oWs.Run sCmd
WScript.Quit
End If
Run Code Online (Sandbox Code Playgroud)
小智 5
我们可以通过将“Computer\HKLM\SOFTWARE]\Classes\VBSFile\Shell\Open\Command”键的默认值中的“system32”更改为“sysWOW64”来强制vbscript始终以32位模式运行
| 归档时间: |
|
| 查看次数: |
118534 次 |
| 最近记录: |