Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение множеста RecordSet / 4 сообщений из 4, страница 1 из 1
15.03.2006, 13:16
    #33602118
Loki1828
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение множеста RecordSet
Доброе время суток Алл!!!

Имеется процедура:
CREATE PROCEDURE simple.simpleTest4
AS
SELECT * from Tab3
SELECT * from Test1
SELECT * from Tab3
SELECT * from Test2
SELECT * from Tab2
SELECT * from Tab1

И обработка в java:
stmt = conn.prepareCall("exec simple.simpleTest4");
stmt.execute();

ResultSet rs = null;

do {
rs = stmt.getResultSet();
++rc;
if (rs != null) {
while (rs.next()) {
.......
}

rs.close();
rs = null;

}


} while (stmt.getMoreResults());

Все работает нормально

Но если процедура примет вид:
CREATE PROCEDURE simple.simpleTest4
AS
select * into #tmp from Test1
select * into #tmp2 from Test2

SELECT * from Tab3
SELECT * from Test1

SELECT * from Test1
SELECT * from #tmp

SELECT * from #tmp2
SELECT * from Test2
SELECT * from Tab2
SELECT * from Tab1

drop table #tmp
drop table #tmp2


То не работает:
Показывает что существует один набор записей с нулевым количеством строк

При этом stmt.getUpdateCount() = 10 (до этого -1)

Меняя код на следующий:
do {
rs = stmt.getResultSet();
if (stmt.getUpdateCount() != -1) continue;

if (rs != null) {
while (rs.next()) {
........
}

rs.close();
rs = null;

}

} while (stmt.getMoreResults() || stmt.getUpdateCount() != -1);

Вроде все обрабатывается нормально,
вот вопрос так принято делать или как?
...
Рейтинг: 0 / 0
16.03.2006, 14:37
    #33605501
Antei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение множеста RecordSet
Полагаю что stmt.getUpdateCount() - есть результат
Код: plaintext
1.
2.
...
stmt.getUpdateCount() =  10 
...

вообще по мне лучше использовать вариант возврата одного резалтсета в зависимости от парамаметра процедуры. Надежней будет.
...
Рейтинг: 0 / 0
16.03.2006, 15:21
    #33605693
Antei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение множеста RecordSet
Упс... AnteiПолагаю что stmt.getUpdateCount() - есть результат

Код: plaintext
1.
2.
...
select * into #tmp2 from Test2
...
...
Рейтинг: 0 / 0
17.03.2006, 07:45
    #33606971
Loki1828
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение множеста RecordSet
Antei
вообще по мне лучше использовать вариант возврата одного резалтсета в зависимости от парамаметра процедуры. Надежней будет.

Можно подумать меня спрашивают, что я хочу :(.
Сделали процедуру, а я забирай результат как хошь, а переделывать они её не будут, она у них видите ли стандартная.

Ну раз никаких нареканий данный код не вызвал, будет использовать его. Пока вроде работает и на других процедурах.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение множеста RecordSet / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]