powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Определение количества строк в ResultSet
35 сообщений из 35, показаны все 2 страниц
Определение количества строк в ResultSet
    #32801051
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как грамотно определить количество строк в полученном ResultSet?

В книге "Сервлеты и JavaServer Pages" написано:
"Единственный способ определения количества строк - постоянное повторение вызова метода next объекта ResultSet, пока он не возвратит значение false".

Неужели только так?
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32801070
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GMaxКак грамотно определить количество строк в полученном ResultSet?

В книге "Сервлеты и JavaServer Pages" написано:
"Единственный способ определения количества строк - постоянное повторение вызова метода next объекта ResultSet, пока он не возвратит значение false".

Неужели только так?

ResultSet rs = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY).executeQuery(qry);
rs.last();
int resulSetSize = rs.getRow();
rs.beforeFirst();

или выполнить select count(*) from table1 where a > 1
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32801089
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исчерпывающе! Пасиба.
Значит книги врут.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32801298
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Две копейки: столкнулся с тем, что Oracle 9i JDBC Driver позволяет получать ResultSet.TYPE_SCROLL_SENSITIVE только для ResultSet'ов, полученных через выполнение select'а, но не как refcursor, из процедуры, к примеру. Такое вот ограничение.. В Oracle 10g JDBC уже работает.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32801418
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В книге навверное подразумевался JDBC 1.0, т.к. в этой версии можно по Resultset пройти только один раз в одном направлении

А способ предложенный А.Грасоff™ будет работать только начиная с JDBC 2.0

Так что не надо на книжки гнать
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32801501
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SmaLLВ книге навверное подразумевался JDBC 1.0, т.к. в этой версии можно по Resultset пройти только один раз в одном направлении

А способ предложенный А.Грасоff™ будет работать только начиная с JDBC 2.0

Так что не надо на книжки гнать

Ну зачем же сразу так грубо?
Может быть и 1.0, правда ссылки на версию в книге я не нашел.
Кстати книга была написана в 2000 году, а JDBC 2.0 появился еще в 1998 если не ошибаюсь. Но в 2000 точно был. Так что вот...
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32804884
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ GMaxКак грамотно определить количество строк в полученном ResultSet?

В книге "Сервлеты и JavaServer Pages" написано:
"Единственный способ определения количества строк - постоянное повторение вызова метода next объекта ResultSet, пока он не возвратит значение false".

Неужели только так?

ResultSet rs = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY).executeQuery(qry);
rs.last();
int resulSetSize = rs.getRow();
rs.beforeFirst();
Ну ты научишь, Граспых. Память-то не резиновая.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805471
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чего-то не получилось у меня получить OutOfMemory на
[select * from table]. в table - 13796090 строк.

сервер БД - Microsoft SQL 2000
драйвер на клиенте - JNetDirect 3.3
клиентский комп - PIV/2GHz, 512MB, Windows 2000 Prof.
серверный комп - 2 x PIII/1.3GHz, 1GB, Windows 2000 Prof.

на клиенте память при выполнении java-теста, аналогичному привиденным,
выросла на 6MB, сервер тоже не особо напрягался.

--
FUCK THE iNET!!!
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805493
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™чего-то не получилось у меня получить OutOfMemory на
[select * from table]. в table - 13796090 строк.

сервер БД - Microsoft SQL 2000
драйвер на клиенте - JNetDirect 3.3
клиентский комп - PIV/2GHz, 512MB, Windows 2000 Prof.
серверный комп - 2 x PIII/1.3GHz, 1GB, Windows 2000 Prof.

на клиенте память при выполнении java-теста, аналогичному привиденным,
выросла на 6MB, сервер тоже не особо напрягался.

--
FUCK THE iNET!!!
где-та я видел про ето (оракловый драйвер) топик, тока найти не могу
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805512
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexakaгде-та я видел про ето (оракловый драйвер) топик, тока найти не могу

это?

http://www.sql.ru/forum/actualthread.aspx?tid=32346
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805528
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ zalexakaгде-та я видел про ето (оракловый драйвер) топик, тока найти не могу

это?

http://www.sql.ru/forum/actualthread.aspx?tid=32346
ниа не то, нимагу вспомнить словов для поиска
зы
кстати ты там тоже участвовал
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805544
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805773
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курсор Oracle обеспечивает последовательный доступ только в одном направлении (несмотря на скроллируемость резервного набора).
Поэтоу предложенный метод пройти до конца, а потом вернуться в начало приведет только к повторному выполнению запроса и перебору всех строк, но скрытым образом.
То есть сначала все строки извлекаются на клиента, а потом выполняется повторно запрос и в полученном НОВОМ наборе курсор устанавливается в начало.
Если уж так хочется узнать количество строк, перед основным запросом выполни SELECT COUNT(*) FROM ... WHERE "условие"
где "условие" точно такое как в основном запросе.
Все таки будет меньший напряг для системы.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805893
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBasilКурсор Oracle обеспечивает последовательный доступ только в одном направлении (несмотря на скроллируемость резервного набора).
Поэтоу предложенный метод пройти до конца, а потом вернуться в начало приведет только к повторному выполнению запроса и перебору всех строк, но скрытым образом.
То есть сначала все строки извлекаются на клиента, а потом выполняется повторно запрос и в полученном НОВОМ наборе курсор устанавливается в начало.Это ты сам придумал? Или это где-то написано? Как объяснишь вот это:
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805914
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 stdio
а версия thin драйвера у вас какая?
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805969
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexaka2 stdio
а версия thin драйвера у вас какая?9.0.1.5.0
На других версиях, думаю, поведение будет точно таким же.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32805972
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexaka2 stdio
а версия thin драйвера у вас какая?а еще у него пентиум один
с 32 мб озу
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32806059
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to stdio
Ну, и как это противоречит тому, что я написал ?
Когда ты вызвал execute(), выполнился парсинг SQL и было произведено его выполнение.
Указатель курсора установлен на начало для выборки.
Когда ты вызвал rs.last() все строчки должны быть "профетчены" на клиента, что естественно потребовало массу работы.
В чем ошибочность моих слов ?
Проблема этого дела в том, что не пройдя весь курсор с фетчем до конца ты не узнаешь, сколько возвращено строк.
Это принципиальный вопрос, так как узнать количество строк в Oracle можно только перебрав их все.
Вернуться в начало - значит повторно выполнить запрос.
Чем тебе не нравиться COUNT(*). Запрос, конечно все равно выполняется, но хоть фетч уменьщается до одной строки.
И дело тут не в версии драйвера, а в механизме работы курсора Oracle.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32806223
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBasilto stdio
Ну, и как это противоречит тому, что я написал ?
Когда ты вызвал execute(), выполнился парсинг SQL и было произведено его выполнение.
Указатель курсора установлен на начало для выборки.
Когда ты вызвал rs.last() все строчки должны быть "профетчены" на клиента, что естественно потребовало массу работы.
В чем ошибочность моих слов ?
Проблема этого дела в том, что не пройдя весь курсор с фетчем до конца ты не узнаешь, сколько возвращено строк.
Это принципиальный вопрос, так как узнать количество строк в Oracle можно только перебрав их все.
Вернуться в начало - значит повторно выполнить запрос.
Чем тебе не нравиться COUNT(*). Запрос, конечно все равно выполняется, но хоть фетч уменьщается до одной строки.
И дело тут не в версии драйвера, а в механизме работы курсора Oracle.противоречит тем, что ты рассказываешь про то как работает драйвер, как ты думаешь, а не так как Oracle это делает на самом деле . А на деле он просто скачивает всё в память на клиента и там уж создаёт иллюзию обратно крутимого курсора.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32806316
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уел !
Ну да, я не обратил внимания на то, что у тебя в примере результирующий набор TYPE_SCROLL_INSENSITIVE.
И в этом моя ошибка.
Однако при чувствительном к изменениям наборе запрос все-равно будет выполняться повторно.
С другой стороны большой, наверное, кайф выбрать тысячи строк на клиента только для того, чтобы выяснить сколько строк на самом деле будет выбрано.
Таким образом задача stdio видимо состояла не в том, чтобы ответить на вопрос, как без выполнения операции фетч выяснить - сколько строк вернет запрос, а в том чтобы уличить меня в ошибке.
Ты победил !
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32806505
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBasilТаким образом задача stdio видимо состояла не в том, чтобы ответить на вопрос, как без выполнения операции фетч выяснить - сколько строк вернет запрос, а в том чтобы уличить меня в ошибке.Нет. Я просто хотел показать, что лучше один раз провести эксперимент, чем строить гипотезы. Даже если будет SENSITIVE, то совсем не очевидно, что будет перезапускаться весь запрос целиком. Не будет вылняться select * from (...) where rowid = ... ? А? А под хранение значений "предыдущих" rowid всё равно память нужна => всегда я найду такую таблицу, на которой оперативной памяти не хватит.
_________________
Умерщвление прекрасной гипотезы мерзким фактом являет собой величайшую трагедию науки
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32806525
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полагаю, что при перезапросах ROWID использоваться не будет, так он неизвестен для вставленных после первого запроса строк.
Поэтому Вашу замечательную сентенцию по поводу красивой гипотезы возвращаю Вам обратно.

Извините за назойливость. Маленькое дополнение
У меня есть небольшая универсальная программа по выполнению запросов и выводу результатов написанная на Java.
В ней запрос (Oracle 10g )

SELECT * FROM dba_objects;

возвратил строк : 48259 За время : 12344 м-сек.

Запрос

SELECT COUNT(*) FROM dba_objects;

возвратил строк : 1 За время : 203 м-сек.

Правда это с учетом вывода на экран. Однако, согласитесь, разница во времени существенная.
Поскольку я принципиально не использую чувствительных к скроллированию курсоров, потребность в памяти при десятках подряд выполняемых запросов составляет 12М и не больше.
Что касается скроллируемых наборов, то предпочитаю собственного изготовления RowSet с кэшированием строк в базе, расположенной на сервере приложений.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32806952
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBasilПолагаю, что при перезапросах ROWID использоваться не будет, так он неизвестен для вставленных после первого запроса строк.
Поэтому Вашу замечательную сентенцию по поводу красивой гипотезы возвращаю Вам обратно."To support updatability and change sensitibility, Oracle JDBC drivers cache the ROWID along with each row". (взято из читаемого курса по "Oracle9i: Access the Database with Java and JDBC"). Проверять - проверял до курса.
MBasilИзвините за назойливость. Маленькое дополнение
У меня есть небольшая универсальная программа по выполнению запросов и выводу результатов написанная на Java.
В ней запрос (Oracle 10g )

SELECT * FROM dba_objects;

возвратил строк : 48259 За время : 12344 м-сек.

Запрос

SELECT COUNT(*) FROM dba_objects;

возвратил строк : 1 За время : 203 м-сек.

Правда это с учетом вывода на экран. Однако, согласитесь, разница во времени существенная.
Поскольку я принципиально не использую чувствительных к скроллированию курсоров, потребность в памяти при десятках подряд выполняемых запросов составляет 12М и не больше.
Что касается скроллируемых наборов, то предпочитаю собственного изготовления RowSet с кэшированием строк в базе, расположенной на сервере приложений.Ах, ну всё про баню. Я где-то утверждал, что надо пересчитывать строки на клиенте?
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32807775
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, обращаю ваше внимание на некоторые дополнительные аспекты.

1. То, что для изменения строки, еще в момент выполнения операции POST и в момент ее блокирования необходимо кэширование ROWID, это несомненно, как несомненно и то, что драйвер обязан это делать.

2. Однако, рассмотрим следующую ситуацию. Пользователь работает с последними строками резервного набора, а в это время администратор удаляет одну из первых строк и вставляет ее вновь. При этом он еще вставляет десяток строк (одна из них может получить то же самое ROWID). Можете ли Вы гарантировать, что по ROWID будет получена та же строка, когда пользователь вернется в начало набора ? Фиксация ROWID ведь гарантирована только при блокировании строки. Представьте себе - пользователь проскроллировал набор в начало увидел на месте старой строки нечто совершенно неожиданное, так как ROWID старой строки получила другая.

3. Ситуация практически та же, но запрос обращается к секционированной таблице, а администратор выполняет операции MERGE PARTITION или SPLIT PARTITION.
Можно было бы привести и другие примеры, но думаю и этого достаточно.

4. Откровенно говоря менторский тон stdio мне надоел, и с Вашего разрешения, я в дискуссию по этому топику больше вмешиваться не буду. Пусть последнее слово останется за ним.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32807889
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBasilГоспода, обращаю ваше внимание на некоторые дополнительные аспекты.Типа, пусть мировое сообщество нас рассудит?
MBasil1. То, что для изменения строки, еще в момент выполнения операции POST и в момент ее блокирования необходимо кэширование ROWID, это несомненно, как несомненно и то, что драйвер обязан это делать.До этого Вы выдвигали совсем другую гипотезу. http://www.sql.ru/forum/actualpost.aspx?bid=38&tid=141321&mid=1149935&p=1&act=quot#1146913
MBasil2. Однако, рассмотрим следующую ситуацию. Пользователь работает с последними строками резервного набора, а в это время администратор удаляет одну из первых строк и вставляет ее вновь. При этом он еще вставляет десяток строк (одна из них может получить то же самое ROWID). Можете ли Вы гарантировать, что по ROWID будет получена та же строка, когда пользователь вернется в начало набора ? Фиксация ROWID ведь гарантирована только при блокировании строки. Представьте себе - пользователь проскроллировал набор в начало увидел на месте старой строки нечто совершенно неожиданное, так как ROWID старой строки получила другая.
3. Ситуация практически та же, но запрос обращается к секционированной таблице, а администратор выполняет операции MERGE PARTITION или SPLIT PARTITION.
Можно было бы привести и другие примеры, но думаю и этого достаточно.Выводы где? Смотрим в документацию и видим: http://download-west.oracle.com/docs/cd/B10501_01/java.920/a96654/resltset.htm#1020090
Повторюсь "Умерщвление прекрасной гипотезы мерзким фактом являет собой величайшую трагедию науки"
MBasil4. Откровенно говоря менторский тон stdio мне надоел, и с Вашего разрешения, я в дискуссию по этому топику больше вмешиваться не буду. Пусть последнее слово останется за ним.И пусть ему будет стыдно!
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32808177
Фотография Ааз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет

2 MBasil

"Менторский" - наставнический, поучающий (словарь Ожегова)

stdio знает предмет, рыл в этом направлении, курсы читает (таки да - ментор) ... Разве были личные наезды? Мне показалось, что stdio хотел Вас подтолкнуть в сторону более рационального подхода - если уж строить гипотезы, то надо бы их проверять. А лучше осознать концепции - тогда неадекватные гипотезы не будут рождаться.

Всего
--
Andrei Kriushin (Oracle8/8i/9i OCP DBA), RDTEX J.S.C.
Disclaimer: Opinions are of my own and not necessar(-il)y...
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #32812205
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Ааз

Не хотелось к этому неприятному разговору обращаться вновь, но раз затронули...
приведу мое личное мнение о данном топике.

1. stdio, конечно подправил мое личное представление о резервном наборе драйвера Oracle. Будь это сделано доброжелательно, как обычно бывает в разговоре коллег, я бы сказал ему спасибо. Однако его задачей являлось не обсуждение поставленного вопроса (по этому вопросу он отправил меня в баню), он вовсе не желал доброжелательно подсказать мне, что я не прав, а хотел показать - как он умен (стандартный ввод/вывод : не больше и не меньше), а это знаете ли раздражает. Не думайте, что я настолько глуп, чтобы не уловить подтекст.

2. stdio даже не попытался резюмировать итоги "дискуссии", он просто откровенно посмеивался над человеком, которого вовсе не знает, причем кое-где с использованием откровенного передергивания (если Вы внимательно читали топик).
А ведь итоги дискуссии интересны сами по себе !

- Скроллируемый резервный набор переправляется целиком на клиентскую машину или на сервер приложений, что допустимо лишь при заведомо небольших объемах данных. Причем разработчик не может этот аспект явно контролировать.

- Обновляемый и скроллируемый резервный набор выполняет таки повторные запросы. Кстати в топике я не мог отрицать, что ROWID извлекается, так как об этом явно имеется слайд в курсе. Я лишь отрицал (как выяснилось напрасно), что повторные запросы базируются на ROWID. Базирование на ROWID, казалось дает в этом смысле преимущества, однако может приводить к появлению коллизий, тем более что скроллируемый резервный набор имеет массу и других ограничений. Возможно из-за неудовлетворенности положением дел и появилась концепция RowSet, решение которой фирмой Sun в ее интерфейсах, на мой взгляд, также далеко от совершенства.

3. Интуитивно ощущая недоверие к этому решению, я никогда не использовал скроллируемый резервный набор и данная дискуссия имеет следствием не только раздражение и неприятный осадок, но также дополнительное убеждение в том, что пока использовать его не стоит.

4. Являясь преподавателем с двадцатилетним стажем и зная, что эффект желания поучать является профессиональной болезнью, стараюсь всячески избегать этого порока. Более того, стараюсь без обид признавать ошибки и принимаю с благодарностью помощь в искоренении ошибок от кого бы то ни было. Горжусь тем, что будучи в свое время, начальником отдела на заводе не боялся просить у рабочих помощи, когда чего-то не знал. Общение с stdio для меня - еще один урок в том смысле, что я ни при каких не должен поступать подобным образом.

4. И если уж на то дошло дело до ссылок на регалии - к.т.н, доцент, (Oracle8/8i/9i OCP DBA), (Oracle8/8i/9i OCP Developer), Sun certified Java programmer.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319435
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как определить ко-во строк в выполненом запросе?
Код: plaintext
1.
2.
rowds = statement.executeQuery(sql);
 int  row = rowds.getRow();

row=0. Но это не верно так как запрос я паралельно выполнила в навигаторе и там точно есть строки.

Что не так?
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319485
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlukOza
> Как определить ко-во строк в выполненом запросе?
> rowds = statement.executeQuery(sql);int row = rowds.getRow();

> row=0. Но это не верно так как запрос я паралельно выполнила в
> навигаторе и там точно есть строки.

> Что не так?Тема==Ответить




можно предворительно выполнить запрос с count

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319495
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlukOza
Как определить ко-во строк в выполненом запросе?
rowds = statement.executeQuery(sql);
int row = rowds.getRow();

row=0.


это верно. вернулась текущая строка:

int getRow() - Retrieves the current row number.


-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319653
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
rs.last();
 int  resulSetSize = rs.getRow();
rs.beforeFirst();

rs.last(); - Выпадает в cath(SQLException el)?
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319700
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlukOza
> rs.last();int resulSetSize = rs.getRow();rs.beforeFirst();

> rs.last(); - Выпадает в cath(SQLException el)?Тема==Ответить




вроде не всякая БД поддерживает операции по произвольному
перемещению курсора. rs.next() должен работать наверняка...

сделай select count(*) вначале и не думай...

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319742
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlukOza
Код: plaintext
1.
2.
3.
rs.last();
 int  resulSetSize = rs.getRow();
rs.beforeFirst();

rs.last(); - Выпадает в cath(SQLException el)?
Код: plaintext
rs.next();
?
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319754
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deady GlukOza
> rs.last();int resulSetSize = rs.getRow();rs.beforeFirst();

> rs.last(); - Выпадает в cath(SQLException el)?Тема==Ответить




вроде не всякая БД поддерживает операции по произвольному
перемещению курсора. rs.next() должен работать наверняка...

сделай select count(*) вначале и не думай...

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
1) не бд, а драйвер.
2) count(*) ф топку!
3) если данные нужны, фетчи все и считай.
...
Рейтинг: 0 / 0
Определение количества строк в ResultSet
    #33319780
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deadyсделай select count(*) вначале и не думай...
Если это Oracle, то можно добавить поле, в котором через аналитическую функцию считать общее количество записей.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Определение количества строк в ResultSet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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