Я пытаюсь запустить StoredProcedure с помощью jtds. Моя база данных на SQL SERVER 2008java.sql.SQLException: Неверное состояние, объект ResultSet закрыт
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? Я не уверен, но у меня не было этой ошибки, когда connectig к SQL Server 2005.
Благодарности
Спасибо, здесь нет этой ситуации, я хочу пройти через нее сразу после запуска execQuery. – Waseem
Если это происходит внутри блока try, то есть ошибка в драйвере JDBC или в дизайне кода есть что-то серьезное, например, если 'ResultSet' объявлен как переменная класса вместо локальной переменной метода (и, таким образом, будет использоваться для всех потоков). Попытайтесь выяснить, написан ли код JDBC в соответствии с обычной идиомой JDBC. – BalusC
@BalusC Почему вы говорите, что это плохой дизайн для передачи ResultSet в качестве аргумента? –