ADO "Unspecified Error" вместо фактической ошибки при извлечении курсора на стороне сервера - PullRequest
1 голос
/ 17 мая 2010

Это относится к моему недавнему вопросу: Принудительная ошибка Oracle при получении

Теперь я могу воспроизвести сценарий, в котором при использовании 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

1 Ответ

0 голосов
/ 18 мая 2010

SQLCODE и SQLERRM должны быть возвращены с вызовом SQL. Это выглядит как Ошибка ADO - это интерфейс для доступа к этому.

...