K>Пример StoredProcedure
K>K>SET QUOTED_IDENTIFIER ON
K>GO
K>SET ANSI_NULLS ON
K>GO
K>ALTER PROCEDURE sp_manyresultsets
K> (
K> @Id int
K> )
K>AS
K> SET NOCOUNT ON
K>-- First Select
K> SELECT *
K> FROM table1
K>-- Second Select
K> SELECT *
K> FROM table2
K> RETURN 0
K>GO
K>SET QUOTED_IDENTIFIER OFF
K>GO
K>SET ANSI_NULLS ON
K>GO
K>
K>K>Connection conn = null;
K>// skip get connection
K>CallableStatement cs = null;
K>ResultSet rs = null;
K>int id = 0;
K>try{
K> cs = conn.prepareCall("{call sp_manyresultsets(?)}");
K> cs.setInt(1,id);
K> cs.execute();
K> // retrieve first ResultSet (select * from table1)
K> rs = cs.getResultSet();
K> if (cs.getMoreResults()) { // check if we have more returned ResultSets
K> // retrieve second ResultSet (select * from table2)
K> rs = cs.getResultSet();
K> }
K>}catch(SQLException sqle){
K>}finally{
K>try{
K>rs.close();
K>}catch(Exception e1){}
K>try{
K>cs.close();
K>}catch(Exception e1){}
K>}
K>
вызываю абсолютно аналогичный код написанный на джавабилдер Х с использованием MSSQL 2000
при этом при всех вызовах getResultSet мне возвращается null
если я вызываю getMoreResults() с параметром Statement.KEEP_CURRENT_RESULT то на этом вызове программа зависает
если пробую добавлять в процедуру выходной параметр и соответственно менять джавовый код, выходной параметр возвращается нормально, то есть с процедурой все ок
если пробую перед получением выходного параметра вызывать getResultSet она все равно возвращает null
в чем может быть проблема?
Скорее всего твой драйвер не умеет работать с запросами и процедурами возвращающими результат в виде нескольких наборов данных.
Почитай описание своего драйвера, там я думаю найдёшь ответ на свой вопрос.
"bugmaker" <25577@news.rsdn.ru> сообщил/сообщила в новостях следующее:
news:658614@news.rsdn.ru...
From: bugmaker
при этом никаких исключений не выкидывается
Re: проблема с ResultSet Оценить
Posted via RSDN NNTP Server 1.9 beta