代码之家  ›  专栏  ›  技术社区  ›  Alexander Pogrebnyak

是否有一种使用SQL server JDBC驱动程序显示打印结果的方法?

  •  4
  • Alexander Pogrebnyak  · 技术社区  · 16 年前

    print 'message'
    

    有没有办法在通过JDBC连接到SQLServer2008的java程序中获取输出?

    此外,是否存在以下危险: print

    3 回复  |  直到 16 年前
        1
  •  8
  •   Cameron Gregor    7 年前

    是的,有: https://dba.stackexchange.com/a/44373/5457

    Statement stmt = ...;
    stmt.execute("some sql statement");
    SQLWarning warning = stmt.getWarnings();
    
    while (warning != null) {
        System.out.println(warning.getMessage());
        warning = warning.getNextWarning();
    }
    
        2
  •  1
  •   N30    16 年前

    这 article 演示如何在VB.NET中执行此操作

    我相信在java代码中也可以做到这一点。

    上面文章中指定的VB.NET代码在my studio 2005环境中无法正常工作。

    所以我重新写了它如下

    Imports System.Data.SqlClient
    Module Module1
    
        Public Sub Main()
    
            'change your database name in following line.
            Dim conn As New SqlConnection("server=(local);Integrated Security=SSPI;database=Test")
    
    
    
            AddHandler conn.InfoMessage, New SqlInfoMessageEventHandler(AddressOf OnInfoMessage)
    
    
    
            conn.Open()
    
    
    
            Dim cmd As New SqlCommand()
    
            cmd.Connection = conn
    
            cmd.CommandType = CommandType.StoredProcedure
    
            cmd.CommandText = "[SPWithPrint]"
    
    
    
            cmd.ExecuteNonQuery()
    
    
    
            conn.Close()
    
    
    
            ' Dts.TaskResult = Dts.Results.Success
    
    
    
        End Sub
    
    
    
        Private Sub OnInfoMessage(ByVal sender As Object, ByVal args As System.Data.SqlClient.SqlInfoMessageEventArgs)
    
            Dim err As SqlError
            For Each err In args.Errors
                Console.WriteLine("The {0} has received a severity {1}, state {2} error number {3}\n" & _
          "on line {4} of procedure {5} on server {6}:\n{7}", _
          err.Source, err.Class, err.State, err.Number, err.LineNumber, _
        err.Procedure, err.Server, err.Message)
            Next
    
        End Sub
    
    End Module
    

    其他有用的链接如下。

    http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.infomessage.aspx

    http://msdn.microsoft.com/en-us/library/a0hee08w.aspx

        3
  •  0
  •   cope360    16 年前

    你不能这么做。您可以选择使用存储过程中的输出参数或执行以下操作

    SELECT 'message'
    

    这会给你一个 ResultSet

    推荐文章