ďťż
 
=?iso-8859-2?q?problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F)?= ďťż
 
=?iso-8859-2?q?problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F)?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?iso-8859-2?q?problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F)?=



=?iso-8859-2?q?=A3ukasz_Nowicki?= - 02-02-2007 00:10
=?iso-8859-2?q?problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F)?=
  witam!!

napisałem aplikację, coś w rodzaju przeglądarki tabel z bazy MsSQL
2000, ktora wyszukuje odpowiednie rekordy pasujące do ustawionego
filtra. samo wyszukiwanie w bazie i pobieranie odpowiednich rekordów
sprowadza się do poniższego kodu :

rs = dbStmt.executeQuery(query.toString());

while (rs.next()) {
events[x /
250].add(getMessage(rs.getInt(1),rs.getInt(2)
,rs.getInt(3),rs.getInt(4)
,rs.getInt(5)
,new
String(rs.getDate(6) + " " +rs.getTime(6))
,rs.getString(7), x));
id_zd[x++] = rs.getInt(8);
}

problem polega na tym, ze jak ustawię filtry tak, żeby znajdował nie
wielka ilość rekordów to wszystko działa ok, ale gdy ma mi znaleźć
większą ich ilość to wyrzuca wyjątek : Invalid state, ResultSet object
is close.

i teraz tak się zastanwiam czy to jest taka możliwość że ResultSet ma
jakąś swoją ograniczoną pojemność ?? czy może jednak spowodowane jest
to blędami w składni ?

będę bardzo wdzięczny za jakąkolwiek pomoc lub podpowiedź

pozdrawiam
ŁN





Brzezi - 02-02-2007 00:10

  czw, 01 lut 2007 o 12:12 GMT, Łukasz Nowicki napisał(a):

> i teraz tak się zastanwiam czy to jest taka możliwość że ResultSet ma
> jakąś swoją ograniczoną pojemność ??

Nie spotkalem sie jeszcze z taki przypadkiem...

> czy może jednak spowodowane jest
> to blędami w składni ?

bez kodu trudno cos powiedziec...

Pozdrawiam
Brzezi
--
[ E-mail: brzezi@enter.net.pl ][ If it weren't for the last minute, ]
[ Ekg: #3781111 ][ nothing would ever get done. ]
[ LinuxUser: #249916 ][ ]




Krzysztof Wolny - 03-02-2007 00:02

  Łukasz Nowicki wrote:

> problem polega na tym, ze jak ustawię filtry tak, żeby znajdował nie
> wielka ilość rekordów to wszystko działa ok, ale gdy ma mi znaleźć
> większą ich ilość to wyrzuca wyjątek : Invalid state, ResultSet object
> is close.
>
> i teraz tak się zastanwiam czy to jest taka możliwość że ResultSet ma
> jakąś swoją ograniczoną pojemność ?? czy może jednak spowodowane jest
> to blędami w składni ?

jakby to byly bledy w zapytaniu to bylby raczej inny wyjatek.
sprawdz moze czy jest jakas wartosc graniczna, powyzej ktorej to leci. no i
czy jest to w 100% powtarzalne. i czy na innych zapytaniach tez tak sie dzieje.

--
================================
Krzysztof Wolny

[ http://rtfm.bsdzine.org ][ http://tiny.pl/g776 ]

O: No bo normalnie to każdy czyta z góry na dół...
P: Dlaczego ???
O: Pisanie nad cytatem !
P: Co należy do bardziej wkurzających obyczajów niektórych ludzi ?




redi - 03-02-2007 00:02
=?iso-8859-2?q?Re:_problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F )?=
  Bardzo mozliwe, ja mialem podobny problem przy polaczeniu z baza i
iloscia executeQuery() - tutaj tez jest limit wykonywanych polecen -
chyba cos kolo 16380. Sprawdz czy ten blad jest powtarzalny.





=?iso-8859-2?q?=A3ukasz_Nowicki?= - 03-02-2007 00:02
=?iso-8859-2?q?Re:_problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F )?=
  bo mi przyszło do głowy jeszcze coś takiego : bo wcześniej robię
zapytanie " SELECT COUNT(*) ... " i gdzieś kiedyś o tym czytałem że
przy duzej ilość rekordów operacja ta może zając serwerowi bazy trochę
czasu, więc może to wszystko działa tak, że po odpytaniu o COUNT baza
zaczyna zliczać a w miedzy czasie program odpytuje bazę drugi raz już
o konkretne rekordy i wtedy baza nie reaguje przez co program traktuje
to jako brak danych... ale to tylko taka moja skromna teoria :)

sprobuję to przerobić tak żeby nie odpytywać o COUNT i sprawdzę czy to
pomoże :)

pozdrawiam
ŁN




Twelve Hungry Mammoths - 03-02-2007 00:02

  On Thu, 01 Feb 2007 12:12:43 +0100, Łukasz Nowicki <pieckowo@wp.pl> wrote:
>
> problem polega na tym, ze jak ustawię filtry tak, żeby znajdował nie
> wielka ilość rekordów to wszystko działa ok, ale gdy ma mi znaleźć
> większą ich ilość to wyrzuca wyjątek : Invalid state, ResultSet object
> is close.

z tego co pamietam ze swoich dosc dawnych kontaktow z JDBC taki wyjatek
lecial, gdy na tym samym Connection czy Statement, z ktorego otrzymalismy
ResultSet, wykonalismy kolejne zapytanie. wtedy wyniki poprzedniego sa po
prostu usuwane i z takiego ResultSet nie da sie juz nic odczytac.

pzdr
szeryf




=?iso-8859-2?q?=A3ukasz_Nowicki?= - 03-02-2007 00:02
=?iso-8859-2?q?Re:_problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F )?=
 
> z tego co pamietam ze swoich dosc dawnych kontaktow z JDBC taki wyjatek
> lecial, gdy na tym samym Connection czy Statement, z ktorego otrzymalismy
> ResultSet, wykonalismy kolejne zapytanie. wtedy wyniki poprzedniego sa po
> prostu usuwane i z takiego ResultSet nie da sie juz nic odczytac.

no właśnie to może być to ! :) bo tak poczytałem jeszcze trochę
odnośnie Connection i może być że tutaj tkwi problem, bo ja mam
zrobione to w ten sposób, że stworzyłem sobie klasę DB.class,w której
stworzyłem sobie różne metody do "kontaktu" z bazą. mam w niej dwie
metody : db_con() i db_close(), które odpowiednio tworzą lub zamykają
połączenie z bazą tworząc obiekt na dynamicznej zmiennej :

Connection dbCon;

tylko sprawa wygląda tak, że obiektów klasy DB mam kilka w różnych
miejscach aplikacji i czy to nie bedzie tak, że wszystkie te obiekty
będą nawzajem sobie blokowały połączenie do bazy ? choć moim zdaniem
nie powinno się tak dziać gdyż dbCon nie jest static, ale tu mogę się
mylić :)

bo jeżeli się nawzajem blokują to chyba najrozsądniejszym rozwiązaniem
tego problemu będzie stworzenie ConnectionPool, prawda ??
chyba, że są jakieś inne prostsze sposoby ??

pozdrawiam
ŁN




Adam Sikora - 04-02-2007 00:11

  Łukasz Nowicki napisał(a):
>> z tego co pamietam ze swoich dosc dawnych kontaktow z JDBC taki wyjatek
>> lecial, gdy na tym samym Connection czy Statement, z ktorego otrzymalismy
>> ResultSet, wykonalismy kolejne zapytanie. wtedy wyniki poprzedniego sa po
>> prostu usuwane i z takiego ResultSet nie da sie juz nic odczytac.
>

Owszem, wykonanie kolejnego zapytania na Statement niszczy poprzedni
ResultSet, ale wykonanie kolejnego zapytania na tym samym połączeniu
(ale innym Statement) nie niszczy.

> no właśnie to może być to ! :) bo tak poczytałem jeszcze trochę
> odnośnie Connection i może być że tutaj tkwi problem, bo ja mam
> zrobione to w ten sposób, że stworzyłem sobie klasę DB.class,w której
> stworzyłem sobie różne metody do "kontaktu" z bazą. mam w niej dwie
> metody : db_con() i db_close(), które odpowiednio tworzą lub zamykają
> połączenie z bazą tworząc obiekt na dynamicznej zmiennej :
>
> Connection dbCon;
>
>
> tylko sprawa wygląda tak, że obiektów klasy DB mam kilka w różnych
> miejscach aplikacji i czy to nie bedzie tak, że wszystkie te obiekty
> będą nawzajem sobie blokowały połączenie do bazy ? choć moim zdaniem
> nie powinno się tak dziać gdyż dbCon nie jest static, ale tu mogę się
> mylić :)

Nie wiem jak to jest z innymi bazami, ale MSSQL nie potrafi na jednym
połączeniu obsługiwać 2 zapytań. Z punktu widzenia Jawy tego nie widać
bo jdbc omija ten problem. Jeśli utworzysz statement i bedziesz zasysał
dane, to one beda na bieżąco ściągane z SQLa. Jeśli wykonasz drugiego
statementa, to dane z pierwszego zostaną najpierw w całości zassane
żeby ich nie stracić (jTDS tworzy pliki tymczasowe do tego).
Także uważaj tutaj, bo jak pierwsze zapytanie wróci milion rekordów
a drugie jeden to przed dosatniem tego jednego bedziesz czekał na ten
milion.

>
> bo jeżeli się nawzajem blokują to chyba najrozsądniejszym rozwiązaniem
> tego problemu będzie stworzenie ConnectionPool, prawda ??
> chyba, że są jakieś inne prostsze sposoby ??
--
http://www.bykom-stop.avx.pl/
Jabber: keiichi@jabber.aster.pl




=?iso-8859-2?q?=A3ukasz_Nowicki?= - 06-02-2007 00:04
=?iso-8859-2?q?Re:_problem_z_JDBC_(za_du=BFo_rekord=F3w=3F=3F )?=
 
> Owszem, wykonanie kolejnego zapytania na Statement niszczy poprzedni
> ResultSet, ale wykonanie kolejnego zapytania na tym samym połączeniu
> (ale innym Statement) nie niszczy.

no własnie tak mi się wydawało, że to tak działa... ogólnie problem
rozwiązałem w ten sposób, że zrezygnowałem z odpytywania bazy o ilość
pasujących rekrodów, a odpytuje od razu o rekordy i tablice z wynikami
tworzę dynamicznie :)

i zaczęło działać tak jak chciałem :)

pozdrawiam i dzięki za podpowiedzi
ŁN
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • absolwenci.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com