powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTDS или я тупой?
11 сообщений из 11, страница 1 из 1
JTDS или я тупой?
    #38954452
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делаю пейджинг, наткнулся на полное не понимание происходящего...
это JTDS подкидывает или я делаю не так?

Ниже сделал тест, тоже не работает
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
/*
        CREATE TABLE [dbo].[TEST](
            [ID] [int] NOT NULL,
            [TEXT] [varchar](50) NOT NULL
        ) ON [PRIMARY]
         */
        PreparedStatement pstmt;
        pstmt = connection.prepareStatement(
                "INSERT INTO [TEST]([ID],[TEXT]) VALUES (?, ?)");
        for(int i=1; i<101; i++) {
            pstmt.setInt(1,i);
            pstmt.setString(2,"тест "+i);
            pstmt.addBatch();
        }
        pstmt.executeBatch();
        pstmt.close();

        pstmt = connection.prepareStatement("select * from [TEST]",
                ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);
        ResultSet rs = pstmt.executeQuery();

        int pageNumber=0;     // номер страници
        int countR    =50;    // число строк в странице

        // if(rs.absolute(pageNumber * countR)) // все ок, стоим внутри выборки
        // else                                 // промахнулись, улетели за выборку
        {
            boolean ret =rs.absolute(52);            // это тест, 'relative' не работает от 52 до 100
        //  boolean ret =rs.absolute(51);            // это тест, 'relative' работает
        //  boolean ret =rs.absolute(101);           // это тест, 'relative' работает

            ret = rs.last();                        // ставим на конец
            int pos = rs.getRow();                  // получаем номер последней записи - 100
            pageNumber = (pos - 1) / countR;        // вычисляем номер последней не пустой (-1) страници
            int cursor = pageNumber * countR;       // вычисляем позицию курсора

            ret = rs.relative(cursor - pos);        // устанавливаем курсор смещением от конца
                                                    // для 52 - false, 51 - true
            pos = rs.getRow();                      // для 52 - 0, для 51 -50

            System.out.println(pos);
        }

        rs.close();
        pstmt.close();



ничего не понимаю
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954469
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что значит "работает\не работает" ? В чем проявляется?
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954474
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

в выполнении
Код: java
1.
2.
3.
ret = rs.relative(cursor - pos);        // устанавливаем курсор смещением от конца
                                                    // для 52 - false, 51 - true
            pos = rs.getRow();                      // для 52 - 0, для 51 -50



никакого 0 быть не должно
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954476
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не работает
ret = rs.relative(cursor - pos); // устанавливаем курсор смещением от конца
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954478
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa
Код: java
1.
ret = rs.relative(cursor - pos);        // устанавливаем курсор смещением от конца


Смещение от конца это rs.absolute(-x);


am_sasaникакого 0 быть не должно
Да с фига ли?

RTFM Returns:
the current row number; 0 if there is no current row
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954490
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При наличии
ret = rs.last();
Каким образом
boolean ret =rs.absolute(x);
может влиять на результат теста?
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954499
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
это все понятно, это другой алгоритм

вопрос, почему после
rs.absolute(52); // или любая позиция между 52 и 100
rs.last(); // ставим на конец, курсор на 100
rs.relative(- 50); // отступить от ТЕКУЩЕЙ позиции назад, например на 50, не работает?
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954502
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПри наличии
ret = rs.last();
Каким образом
boolean ret =rs.absolute(x);
может влиять на результат теста?

так в этом и вопрос, без rs.absolute(x); - работает!!!
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954519
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия JTDS свежая?
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38954531
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

последняя, это я сразу проверил..
...
Рейтинг: 0 / 0
JTDS или я тупой?
    #38956144
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
am_sasa,

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


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