2010-05-17 64 views
1

這涉及到我最近的問題時的「未指定的錯誤」,而不是實際的錯誤:Force Oracle error on fetchADO獲取服務器端遊標

我現在能夠重現,其中使用ADO與Oracle OLEDB提供一個方案,我可以強制錯誤例如ORA-01722: invalid number在調用Recordset.MoveNext時發生但是,這不是返回給應用程序的錯誤。相反,該應用程序看到Provider error '80004005' Unspecified error。我怎樣才能讓應用程序看到數據庫中真正的錯誤?這與Oracle 10g(客戶端和服務器)有關。

示例代碼大致如下:

Dim con As New ADODB.Connection 
Dim cmd As New ADODB.Command 
Dim rs As ADODB.Recordset 

con.ConnectionString = "Provider=OraOLEDB.ORACLE;Data Source=xxx;User Id=yyy;Password=zzz" 
con.CursorLocation = adUseServer 
con.Open 
Set cmd.ActiveConnection = con 
cmd.CommandText = "select * from table(ret_err)" 
cmd.Prepared = True 
Set rs = cmd.Execute 
While Not rs.EOF 
    rs.MoveNext 
Wend 

回答

0

SQLCODE和SQLERRM應該用SQL調用返回。 它looks like ADO錯誤是interface訪問此。

+0

它在明顯的情況下不起作用。 「錯誤」集合只包含一個元素,並且一個元素具有「未指定錯誤」的描述。還有另一個竅門嗎? – Dan 2010-05-18 14:34:47