数据库存储过程向客户端发送消息 - 如何捕获它?

时间:2017-07-18 12:42:34

标签: visual-studio stored-procedures vb.net-2010 sybase-ase sybase-asa

我使用的是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处理程序不会捕获此事件。我不知道怎么办? - /

0 个答案:

没有答案