Sql server 如何使用ADO从查询中检索所有错误和消息
当SQL批处理从例如print语句返回多条消息时,我只能使用ADO连接的Errors集合检索第一条消息。我如何获得其余的消息 如果我运行此脚本:Sql server 如何使用ADO从查询中检索所有错误和消息,sql-server,vbscript,ado,Sql Server,Vbscript,Ado,当SQL批处理从例如print语句返回多条消息时,我只能使用ADO连接的Errors集合检索第一条消息。我如何获得其余的消息 如果我运行此脚本: Option Explicit Dim conn Set conn = CreateObject("ADODB.Connection") conn.Provider = "SQLOLEDB" conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Cat
Option Explicit
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "SQLOLEDB"
conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Master"
conn.Open
conn.Execute("print 'Foo'" & vbCrLf & "print 'Bar'" & vbCrLf & "raiserror ('xyz', 10, 127)")
Dim error
For Each error in conn.Errors
MsgBox error.Description
Next
然后我只回“Foo”,而不回“Bar”或“xyz”
有没有办法得到剩下的消息?我自己想出来的 这项工作:
Option Explicit
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "SQLOLEDB"
conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Master"
conn.Open
Dim rs
Set rs = conn.Execute("print 'Foo'" & vbCrLf & "print 'Bar'" & vbCrLf & "raiserror ('xyz', 10, 127)")
Dim error
While not (rs is nothing)
For Each error in conn.Errors
MsgBox error.Description
Next
Set rs = rs.NextRecordSet
Wend
我知道我正在恢复一条长长的死线,但这对我很有帮助。我不得不更新一个写得很糟糕的遗留VbScript,该脚本将数据馈送到SQL数据库,尽管我捕获了
Err
对象,但我从未看到任何错误。看起来我还必须将这种错误检查添加到我的SQL命令中。谢谢