我們有一個經典的ASP應用程序,它的工作原理很簡單,我們不願意修改代碼以免引起一些長期死亡的希臘神的憤怒。從另一個存儲過程通過經典ASP調用存儲過程的問題
我們最近有要求將功能添加到應用程序。功能實現實際上只是一個數據庫操作,只需對UI進行最小限度的更改。
我改變了用戶界面,並做了小修改,以提交一個新的數據值到存儲過程調用(sproc1)。
在直接從ASP調用的sproc1中,我們向恰好位於另一個服務器sproc2上的另一個sproc添加了一個新調用。
不知何故,這不能通過我們的ASP應用程序工作,但可以在SQL Management Studio中工作。
這裏的技術細節:兩個數據庫服務器上
- SQL 2005。
- Sql登錄正在從ASP應用程序向SQL 2005服務器1進行身份驗證。
- 服務器1到服務器2的鏈接服務器正在工作。
- 從SQL Management Studio執行sproc1時 - 工作正常。即使當我們的代碼使用相同的用戶時(應用程序sql登錄)。
- 當從SQL Management Studio獨立於sproc1調用sproc2時,sproc2可以工作。
- VBScript(ASP)捕獲XML中返回給客戶端的錯誤。錯誤編號爲0,錯誤描述爲空。無論是從ADODB.Connection對象還是從ASP端的VBScript中產生的任何Err.Number/Err.Description。
所以沒有任何錯誤,也沒有任何可重複性(即通過SQL Mgmt Studio) - 有誰知道這個問題嗎?
我們目前的計劃是打破並深入ASP端的代碼,並直接從ASP完全獨立地調用Server 2.sproc2,而不是試圖通過sproc1捎帶回來。
找到相同的問題,有關更多的背景信息可能在這裏的問題:http://stackoverflow.com/questions/605996/ms-sql-suppress-return-value-of-stored-procedure-called-in -stored-procedure – BlaM 2009-03-03 11:20:06