这与我最近的问题有关:Force Oracle error on fetch
我现在能够重现将 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