2015-09-22 19 views
0

我有從Windows 2000遷移到Windows 2012 Server的ASP經典應用程序。Microsoft Access數據庫引擎2010可再發行組件64位僅在啓用32位設置爲true時起作用

它使用下面的代碼導入的XLS文件

及以下的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我下載並安裝了Microsoft Access Database Engine 2010 Redistributable

我已經嘗試了上述的32位和64位版本,但它們都不工作,除非我更改應用程序池設置啓用32位應用程序爲True。如果它設置爲False,我會得到下面的錯誤。

Microsoft OLE DB提供程序的ODBC驅動程序錯誤 '80004005'

[微軟] [ODBC驅動程序管理器]數據源名稱找不到和未指定默認驅動程序

不幸的是設置它的真在該網站的另一部分中打破PDF渲染。

我到目前爲止唯一可行的選擇是將它設置在它自己的32位應用程序池下。

如何在64位應用程序池中運行此操作?

編輯:有一個人配有欺騙錘沿之前,不解決這個問題一個相關的問題是 ASP running in 64 bits environment with Access database

回答

2

首先,確保你安裝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一直是連接字符串一個很好的參考。


相關問題