2013-07-26 57 views
0

從Server 2003遷移到Server 2008 R2。傳統的ASP應用程序開始報告「多步OLE DB操作生成錯誤」消息。 32位DSN已正確安裝並經過測試。此特定應用的應用池設置爲32位。實際上,當用戶在網絡上登錄時,ASP應用程序連接到相同的DSN。Server 2003到Server 2008 - 多步OLE DB操作錯誤

然而,有一部分使用ADODB.Command,0 CommandType adCmdText以及少量參數(從表單發送)調用Oracle存儲過程。

這有些像:

{ Call this.SPROC(?, ?, ?, ?, ?, ?, ?, ?, ?, null, null, null, ?, ?, ?, ?, ?, ?, ?) } 

有沒有人有什麼想法?我的第一個想法是,在服務器2008中的CreateParameter數據類型有一些變化...

+0

您是否[google](https://www.google.com/search?q=Multiple-step+OLE+DB+operation+generated+errors&ie=utf-8&oe=utf-8&aq=t)回答或嘗試更正錯誤?例如。一些檢查和行動從[本MSDN文章](http://support.microsoft.com/kb/269495)? – ThinkJet

+0

是的,我已經試過了。 – Brad

回答

1

我終於解決了這個問題。解決方法發現在這個線程的最後一篇文章:https://forums.oracle.com/thread/80441

看來,如果我使用ODBC,設置所有數字參數的精度和規模將解決問題,但是,對於OLE DB,這並沒有解決問題。將所有數字參數從adNumeric更改爲adDouble確實解決了該問題。

對於那些不想冒險去Oracle論壇的人。第一種方式是做這樣的:

Set Parameter = Command.CreateParameter("inRequestType", adNumeric, adParamInput, <length>, <value>) 
Parameter.Precision = 10 
Parameter.NumericScale = 0 
Parameters.Append Parameter 

這樣做沒有解決我的問題,我不得不adNumeric改變adDouble(131〜5)。

相關問題