Israel Aéce

Microsoft MVP, MCP, MCAD, MCTS, MCPD e MCT

My Links

Blog Stats

Archives

Post Categories

Links

Login

Evento InfoMessage

Existe um Evento da SqlConnection que retorna todas as mensagens geradas pelo SQL Server que não são interpretadas como Exception. É possível recuperar tais mensagens através da SqlConnection. Para isso podemos utilizar o Evento InfoMessage que retorna isso. Abaixo um exemplo de como utilizá-lo:

Criando a StoredProcedure:

CREATE PROCEDURE InfoMessage AS
Print 'Disparado pelo InfoMessage'
GO

No Evento Load do Formulário:

Private WithEvents conn As SqlClient.SqlConnection
Private Sub Form1_Load(...) Handles MyBase.Load
    conn = New SqlConnection("...")
    Dim cmd As SqlCommand = New SqlCommand("InfoMessage", conn)
    cmd.CommandType = CommandType.StoredProcedure
    Try
        conn.Open()
        cmd.ExecuteScalar()
        conn.Close()
    Catch ex As Exception
        MessageBox.Show(ex.ToString)
    End Try
End Sub

E no Evento InfoMessage da SqlConnection, capturamos a mensagem da StoredProcedure:

Private Sub conn_InfoMessage(ByVal sender As Object, ByVal e _
    As System.Data.SqlClient.SqlInfoMessageEventArgs) Handles conn.InfoMessage

    MessageBox.Show(e.Message)
End Sub


Com isso, a mensagem que é escrita através do Print do SQL Server, será capturado pelo Evento, e poderá fazer tratamentos no Sistema.

posted on Tuesday, March 30, 2004 2:23 PM

Feedback

# e em C# 4/2/2004 11:43 AM Olavo

E acara!!

Olah como faria isso em C#?

Não queria exibir atraves de evento, e sim diretemente.

Por exemplo, no Onload depois de
cmd.ExecuteScalar()

eu mostraria a msg com MessageBox.Show..
ou entao numa aplicacao console....

se nao puder diz em VB mesmo

# re: Evento InfoMessage 4/2/2004 2:19 PM Israel Aéce

Olá Olavo,

Fiz este exemplo para mostrar o evento InfoMessage da SqlConnection, utilizando uma aplicação Windows-based, e com isso não consegue utilizar o MessageBox.Show(...) em uma aplicação ASP.NET.

Se você quiser utilizar o ExecuteScalar terá que fazer com que a SP retorne o valor, algo como:

RETURN @VarTeste

Title  
Name  
Url
Box Code
Protected by FormShield
Comments