我使用的是Sybase数据库。 在这个数据库中是过程,它有许多输入但没有可读输出。提交后的过程只将msgbox发送给客户端。
Myprocedure(
in a_ID IDINT,
in a_OPERACE NAZEVSTR,
in a_UZIVATEL JMENOSTR,
in a_DATUM DATUMTS_NU,
in a_PARAM1 VALUESTR,
in a_PARAM2 VALUESTR,
in a_PARAM3 VALUESTR,
in a_KOMENTAR KOMENTARTXT
) returns void
和
perform admin_eng.ENG_ShowMessage( ...
我无法改变这个程序,因为我没有访问它:-D
另一方面,我有VB.NET应用程序,这个应用程序我调用这个程序,这个程序返回我的经典Windows消息框与结果。我想抓住这个消息框,取消此消息框,并将结果保存到变量。
Try
Dim cn As New System.Data.Odbc.OdbcConnection()
cn.ConnectionString = "DRIVER={Adaptive Server Anywhere 9.0};ENG=ASA9;DBN=ASWINFO;Uid=" & dbuzivatel & ";Pwd=" & dbuzivatelheslo & ";Links=tcpip(Host=mydb.cz);"
cn.Open()
Dim cmd As New System.Data.Odbc.OdbcCommand()
AddHandler cn.InfoMessage, AddressOf cn_InfoMessage
cmd.CommandType = CommandType.Text
cmd.Connection = cn
cmd.CommandText = "call Myprocedure(
a_ID = '" & id & "',
a_OPERACE = '" & nazevbk & "',
a_UZIVATEL = '" & uzivatel & "',
a_DATUM = '" & datum & "',
a_PARAM1 = '',
a_PARAM2 = '',
a_PARAM3 = '')
"
cmd.ExecuteNonQuery()
cn.Close() : cn.Dispose()
Catch odbcex As System.Data.Odbc.OdbcException
Dim err As System.Data.Odbc.OdbcError
For Each err In odbcex.Errors
MessageBox.Show(err.Message)
Next
End Try
如何抓住这个信息中心的任何想法? try / catch仅对错误消息有效,我的infomessage处理程序不会捕获此事件。我不知道怎么办? - /