2010-01-25 183 views
0

默认情况下,SQL Server JDBC驱动程序返回在存储过程中执行的所有SELECT查询的结果集。我必须调用CallableStatement.getMoreResults()并关闭它们。执行SQL Server存储过程1时,我不希望任何结果集作为返回值;有没有办法阻止执行SQL Server存储过程时返回结果集?SQL Server JDBC在调用存储过程时返回多个结果集

+0

因此,您正在调用一个执行多个SELECT查询的存储过程,但您不想要结果?存储过程还有其他副作用吗?只是试图更好地了解问题。 – Timothy 2010-02-16 15:28:03

+0

除了更新几个表格之外,没有其他副作用。 – 2010-02-16 23:44:19

+0

不只是关闭声明的工作?它应该关闭所有打开的结果集。 – BalusC 2011-06-10 22:15:46

回答

0

我不确定我是否理解。你是否在你的程序中执行了你不想返回的select语句?它正在返回的行是否是您不想要的结果集?如果是后者,则可以将SET NOCOUNT ON添加到过程的开头,以防止返回影响的行。

+0

SELECT语句作为结果集返回。我正在使用CallableStatement语句= cx.prepareCall(ProcedureSQL) – 2010-01-25 17:43:12

+0

NOCOUNT ON对我无效。 – 2010-01-27 21:02:23

0
statement.executeUpdate() 

应该执行你的sql而不返回结果集。

+0

当前我正在使用CallableStatement语句= cx.prepareCall(ProcedureSQL);将尝试执行executeUpdate() – 2010-01-25 17:43:37

+0

当使用executeUpdate来运行存储过程时,它会抛出异常: com.microsoft.sqlserver.jdbc.SQLServerException:INSERT/UPDATE无法执行,请重试。 – 2010-01-25 17:54:48

相关问题