【问题标题】:ADO "Unspecified Error" instead of actual error when fetching server side cursor获取服务器端游标时 ADO“未指定错误”而不是实际错误
【发布时间】:2010-05-17 17:40:52
【问题描述】:

这与我最近的问题有关: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

【问题讨论】:

    标签: oracle cursor ado ora-01722


    【解决方案1】:

    SQLCODE 和 SQLERRM 应与 SQL 调用一起返回。 looks like ADO Error 是用于访问此的interface

    【讨论】:

    • 它在明显的情况下不起作用。 Errors 集合仅包含一个元素,并且该元素具有“未指定错误”的描述。还有什么技巧吗?
    猜你喜欢
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多