有没有办法用SQL Server JDBC驱动程序显示PRINT结果?
如果我的存储过程中有一个print语句:
print 'message'
有没有办法获取通过JDBC连接到SQL Server 2008的java程序中的输出?
另外,从JDBC应用程序调用时,是否存在print
消息进行调试会关闭连接的危险?
是的,有: https : //dba.stackexchange.com/a/44373/5457
Statement stmt = ...; stmt.execute("some sql"); SQLWarning warning = stmt.getWarnings(); while (warn != null) { System.out.println(warning.getMessage()); warning = warning.getNextWarning(); }
本文将介绍如何在VB.NET中执行此操作
我相信你可以在你的java代码中做同样的事情。
您需要做的就是将处理函数附加到SqlInfoMessageEvent
上面文章中指定的VB.NET代码在我的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
你不能这样做。 您可以选择使用存储过程中的输出参数
SELECT 'message'
这将为您提供一个可以在Java中阅读的ResultSet
。
- 无法理解如何使用Android AWS SDK
- 在Android上开始和结束一周
- Java SimpleDateFormat将结果解析一小时(是的,我设置了时区)
- 使用Jetty嵌入式容器时,ServletContextHandler.setResourceBase和ResourceHandler.setResourceBase有什么区别?
- 在Android上获取所有文件夹google drive api
- 在传递Android DialogFragment参数时,onCreateDialog bundle agument意外地为null
- Android:“意外的流结束”exception下载大文件
- Android admob adview force close
- 最大内容长度?