Java 是否有一种使用SQL server JDBC驱动程序显示打印结果的方法?
如果我的存储过程中包含打印语句:Java 是否有一种使用SQL server JDBC驱动程序显示打印结果的方法?,java,sql-server,sql-server-2008,jdbc,Java,Sql Server,Sql Server 2008,Jdbc,如果我的存储过程中包含打印语句: print 'message' 有没有办法在通过JDBC连接到SQLServer2008的java程序中获取输出 另外,当从JDBC应用程序调用时,是否存在这样一种危险,即留给调试的打印消息会关闭连接?您不能这样做。您可以选择使用存储过程中的输出参数或执行以下操作 SELECT 'message' 这将为您提供一个可以在Java中阅读的结果集。这说明了如何在VB.NET中执行此操作 我相信在java代码中也可以做到这一点 您只需将处理程序函数附加到SqlIn
print 'message'
有没有办法在通过JDBC连接到SQLServer2008的java程序中获取输出
另外,当从JDBC应用程序调用时,是否存在这样一种危险,即留给调试的
打印消息会关闭连接?您不能这样做。您可以选择使用存储过程中的输出参数或执行以下操作
SELECT 'message'
这将为您提供一个可以在Java中阅读的结果集。这说明了如何在VB.NET中执行此操作
我相信在java代码中也可以做到这一点
您只需将处理程序函数附加到SqlInfoMessageEvent
上面文章中指定的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
其他有用的链接如下
是的,有:
Statement stmt = ...;
stmt.execute("some sql statement");
SQLWarning warning = stmt.getWarnings();
while (warning != null) {
System.out.println(warning.getMessage());
warning = warning.getNextWarning();
}