2011-10-16 88 views
1

我已經創建了鏈接服務器到Excel spreedsheet。沒關係,在SQL Server中工作我可以在查詢分析器中查詢excel文件。SQL Server鏈接服務器不能在ASP Classic中工作

但是,當我想在我的ASP頁面訪問此鏈接服務器:

Set pishbini = Server.CreateObject("ADODB.Recordset") 

pishbini.ActiveConnection = MM_semmet_STRING 
pishbini.Source = "SELECT * FROM OPENQUERY(SemnanmetWeekly, 'SELECT * FROM [DayPish$]')" 
pishbini.CursorType = 0 
pishbini.CursorLocation = 2 
pishbini.LockType = 1 
pishbini.Open() 

SemnanmetWeekly是在SQL Server中,我在我的ASP頁面得到這個錯誤鏈接服務器的名稱:

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

[微軟] [ODBC SQL Server驅動程序] [SQL服務器] OLE DB提供程序 「Microsoft.Jet.OLEDB.4.0」 對於l墨水服務器「SemnanmetWeekly」返回 消息「無法啓動您的應用程序。工作組信息文件 丟失或完全由其他用戶打開。「

/Daypish.asp,第15行

IUSR(IIS用戶)完全訪問excel文件,我已經打了所有在我的鏈接服務器選項中的不同選項,如模仿或訪問帶有管理員帳戶的Excel文件,但錯誤保持不變!

我更喜歡不更改代碼,因爲我只是在這臺服務器上進行管理。一直在舊服務器上工作,但因爲我們將它移動到新的服務器,它停止工作我在這裏失蹤?

回答

1

與權限無關。我認爲你使用Windows身份驗證登錄到Sql Server,一切正常,你是老闆。但是,如果ASP中的連接是通過SQL身份驗證的,則會出現此錯誤。所以,你應該添加一個類似於下面的查詢的鏈接服務器登錄。

Exec master..sp_addlinkedsrvlogin 
@rmtsrvname = N'SemnanmetWeekly', 
@useself = N'False', 
@locallogin = N'sa', /* replace your own - same as sql server authenticated account */ 
@rmtuser = NULL, 
@rmtpassword = NULL 

然後你就可以連接到SemnanmetWeekly在你的ASP應用程序。

+0

謝謝,解決了我的問題,現在它可以工作,但我有另一個問題,Excel文件被鎖定,我們無法覆蓋它們。 Sql Server或IIS鎖定它們的任何想法? –