Получение серверных сообщений в коде VBA
Пытаюсь воспроизвести элементарную обработку сообщений сервера по мотивам
http://stackoverflow.com/questions/3013447/how-to-retrieve-all-errors-and-messages-from-a-query-using-ado
Sub Test2()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Provider = CurrentProject.Connection.Provider
conn.ConnectionString = CurrentProject.Connection.ConnectionString
conn.Open
Dim rs As ADODB.Recordset
Set rs = conn.Execute("print 'Foo'" & vbCrLf & "print 'Bar'" & vbCrLf & "raiserror ('xyz', 10, 127)")
Dim error As ADODB.error
For Each error In conn.Errors
MsgBox error.Description
Next
While Not (rs Is Nothing)
For Each error In conn.Errors
MsgBox error.Description
Next
Set rs = rs.NextRecordset
Wend
End Sub
НО! Я ничего не получаю. Хотя, вроде, по утверждениям MS сообщения и ошибки все должны быть в Errors.
Выполнение запроса
print 'Foo'
print 'Bar'
raiserror ('xyz', 10, 127)
в MSSMS возвращает
Foo
Bar
xyz
Если
raiserror ('xyz', 10, 127) поменять на raiserror ('xyz', 16, 127) - ошибка в колекции появляется.