gpt4 book ai didi

java.sql.SQLException : Invalid state, ResultSet对象被关闭

转载 作者:行者123 更新时间:2023-11-29 08:15:59 25 4
gpt4 key购买 nike

我正在尝试使用 jtds 运行 StoredProcedure。我的数据库在 SQL SErver 2008 上

private String DRIVER_NAME_VALUE = "net.sourceforge.jtds.jdbc.Driver";  
private String URL_VALUE = "jdbc:jtds:sqlserver://";
...
cstmt =dbConnection.getCallableStatement("{? = call dbo.GetAgentStats (?)}");
.
.
.
rs = cstmt.executeQuery();

当试图遍历结果集时我得到了异常:

java.sql.SQLException: Invalid state, the ResultSet object is closed.
at net.sourceforge.jtds.jdbc.JtdsResultSet.checkOpen(JtdsResultSet.java:299)
at net.sourceforge.jtds.jdbc.JtdsResultSet.first(JtdsResultSet.java:527)
at com.verint.impact360.WFM_plugins.CCE.CCEASCMAdapter.runReport(CCEASCMAdapter.java:238)
at com.verint.impact360.WFM_plugins.CCE.CCEASCMAdapter.retrieveData(CCEASCMAdapter.java:131)
at com.bluepumpkin.Plugins.PTeXtender.GenericDCSPlugin.retrieveStatisticsData(GenericDCSPlugin.java:332)
at com.bluepumpkin.Plugins.PTeXtender.GenericDCSPlugin.start(GenericDCSPlugin.java:68)
at com.verint.impact360.WFM_plugins.CCE.CCEASCMAdapter.main(CCEASCMAdapter.java:75)
Logger.logStackTrace():----- End Stack Trace ------

它与 SQL Server 2008 相关吗?我不确定,但是当连接到 SQL Server 2005 时我没有遇到这个错误。

谢谢

最佳答案

您只能遍历 ResultSet当它尚未通过调用 close() 关闭时在 ResultSet , Statement和/或 Connection .

如果您的实际意图是传递 ResultSet 的内容超出创建它的方法的范围,那么你应该将它映射到 List<SomeObject>首先然后返回它。或者,如果您的实际意图是将其传递给其他需要 ResultSet 的类/方法作为参数(这本身就是一个糟糕的设计,但除此之外),那么你应该在相同的 try 中这样做 block 作为 ResultSet已创建。

关于java.sql.SQLException : Invalid state, ResultSet对象被关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4864920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com