Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Вызов хранимой процедуры со смешанным ответом. |
Автор: eandy 19.10.2009, 19:19 |
Приветствую. Как получить все результаты отработки следующей sybase хранимки? CREATE PROCEDURE dbo.doIsDayOpen As BEGIN SELECT 999 AS var1 RETURN 777 END --- return могу получить так String command = "{? = call dbo.doIsDayOpen()}"; CallableStatement callableStatement = connection.prepareCall(command); callableStatement.registerOutParameter(1, Types.INTEGER); ... callableStatement.execute(); callableStatement.getInt(1) // возвращает return ... далее пытаюсь ResultSet resultSet = callableStatment.getResultSet(); if(resultSet.next()) { resultSet.getInt(0); //вроде как должен получить 999, но падает с эксепшеном } Добавлено через 14 минут и 13 секунд Ура... это волшебный форум ![]() Вобщем, проблема в том, что ResultSet нужно получать раньше чем return. Иначе после получения return что-то где-то закрывается. То есть: String command = "{? = call dbo.doIsDayOpen()}"; CallableStatement callableStatement = connection.prepareCall(command); callableStatement.registerOutParameter(1, Types.INTEGER); callableStatement.execute(); ... сначала ResultSet resultSet = callableStatment.getResultSet(); if(resultSet.next()) { resultSet.getInt(0); //вроде как должен получить 999, но падает с эксепшеном } ... потом callableStatement.getInt(1) // возвращает return |