Microsoft Access Database Engine 2010 Redistributable 64 位仅在 Enable 32-bit 设置为 true 时有效
Microsoft Access Database Engine 2010 Redistributable 64 bit only works if Enable 32-bit set to true
我有一个 ASP 经典应用程序,我正在从 Windows 2000 迁移到 Windows 2012 服务器。
导入xls文件使用如下代码
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Excel Driver (*.xls)}; IMEX=1; HDR=NO; Excel 8.0; DBQ=" & Server.MapPath("\Imports\") &"\"&fn& "; "
以及 csv 文件的以下内容
Set objConn = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathtoCSVFile & ";Extended Properties=""text;HDR=YES;FMT=Delimited"""
根据这个问题的回答 Excel ODBC and 64 bit server I downloaded and installed the Microsoft Access Database Engine 2010 Redistributable。
我已经尝试了上面的 32 位和 64 位版本,但它们都不起作用,除非我将应用程序池设置启用 32 位应用程序更改为 True。如果它设置为 False,我会收到以下错误。
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
不幸的是,将其设置为 True 会破坏该网站另一部分的 PDF 呈现。
到目前为止我想到的唯一可行的选择是将这部分设置在它自己的 32 位应用程序池下。
如何在 64 位应用程序池中 运行 这个?
编辑:在有人带着欺骗锤出现之前,一个没有解决问题的相关问题是
ASP running in 64 bits environment with Access database
首先,请确保您已成功安装 64 位软件包 AccessDatabaseEngine_x64.exe。
之后,使用以下连接字符串。
使用 64 位应用程序池应该不会再有问题。
'Excel 97-2003
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\my\path\to\tables.xls;Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"";"
Set Recordset = Connection.Execute("Select * From [Sheet1$]")
'CSV / TXT
Connection.Open _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\my\path\to\csv_dir\;Extended Properties=""text;HDR=YES;FMT=Delimited"";"
Set Recordset = Connection.Execute("Select * From table.csv")
connectionstrings.com 一直是连接字符串的一个很好的参考。
我有一个 ASP 经典应用程序,我正在从 Windows 2000 迁移到 Windows 2012 服务器。
导入xls文件使用如下代码
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Excel Driver (*.xls)}; IMEX=1; HDR=NO; Excel 8.0; DBQ=" & Server.MapPath("\Imports\") &"\"&fn& "; "
以及 csv 文件的以下内容
Set objConn = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathtoCSVFile & ";Extended Properties=""text;HDR=YES;FMT=Delimited"""
根据这个问题的回答 Excel ODBC and 64 bit server I downloaded and installed the Microsoft Access Database Engine 2010 Redistributable。
我已经尝试了上面的 32 位和 64 位版本,但它们都不起作用,除非我将应用程序池设置启用 32 位应用程序更改为 True。如果它设置为 False,我会收到以下错误。
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
不幸的是,将其设置为 True 会破坏该网站另一部分的 PDF 呈现。
到目前为止我想到的唯一可行的选择是将这部分设置在它自己的 32 位应用程序池下。
如何在 64 位应用程序池中 运行 这个?
编辑:在有人带着欺骗锤出现之前,一个没有解决问题的相关问题是 ASP running in 64 bits environment with Access database
首先,请确保您已成功安装 64 位软件包 AccessDatabaseEngine_x64.exe。
之后,使用以下连接字符串。
使用 64 位应用程序池应该不会再有问题。
'Excel 97-2003
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\my\path\to\tables.xls;Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"";"
Set Recordset = Connection.Execute("Select * From [Sheet1$]")
'CSV / TXT
Connection.Open _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\my\path\to\csv_dir\;Extended Properties=""text;HDR=YES;FMT=Delimited"";"
Set Recordset = Connection.Execute("Select * From table.csv")
connectionstrings.com 一直是连接字符串的一个很好的参考。