jdbc ResultSet为null

时间:2015-12-11 09:58:58

标签: java sql-server jdbc

我正在尝试运行一些更新并最终返回一些我可以使用的resultSet但结果始终为null。我的代码是

PreparedStatement preparedStatement = aConnection.prepareStatement(script);
boolean results = preparedStatement.execute();

如果我的查询是

 BEGIN                  
  Declare @MyLog as varchar(max) = '---------------------- ' 
         +  CHAR(10) + CHAR(10)              
    BEGIN         
      BEGIN TRAN    

        UPDATE MPRN SET K4101 = 'N'
        select * from HELD_FLOW

        COMMIT TRAN 

    END                  
END

该语句不返回任何值。但是,如果我的查询是

 BEGIN                  
  Declare @MyLog as varchar(max) = '---------------------- ' 
         +  CHAR(10) + CHAR(10)              
    BEGIN         
      BEGIN TRAN    
        select * from HELD_FLOW
        UPDATE MPRN SET K4101 = 'N'


        COMMIT TRAN 

    END                  
END

返回所有值!所以更新顺序和选择事宜!我想先更新一些值,最后返回一些输出,如第一个例子中那样不起作用......

1 个答案:

答案 0 :(得分:3)

全部在javadoc

  

execute方法执行SQL语句并指示第一个结果的形式。然后,您必须使用方法getResultSetgetUpdateCount来检索结果,并getMoreResults移动到任何后续结果。

您的过程会返回多个结果,execute会显示第一个结果的类型。在第一个示例中,第一个结果是更新计数,第二个结果是结果集,因此您分别获得falsetrue

您应该使用getMoreResults来处理剩余的结果并找到ResultSet。