Newsgroup: it.comp.java
Titolo: [JAVA2] - [JDBC-ODBC] - Chiudere la connessione: un problema!!

Salve, avrei il seguente problema:
dopo aver eseguito la connessione al database,
non riesco a chiuderla, pena il crash del programma. In pratica se faccio
"connessione.close()" l'applicazione si blocca non appena tento una query.
Se la connessione non viene chiusa, le mie query vengono eseguite
correttamente, ma dopo 6 -7 query, il programma va in crash per il fatto che
la connessione non vienga MAI chiusa.
Come posso fare?
Una soluzione plausibile sarebbe quella di usare in Thread per gestire le
connessioni e le disconnessioni al database???
Spero proprio che qualcuno mi risponda!!
Grazie del vostro tempo.
Valerio Troiano.

non riesco a chiuderla, pena il crash del programma.
I singoli Statement li chiudi di volta in volta dopo
averli usati ? Altrimenti ti restano 'n' cursori aperti...
Davide

 averli usati ? Altrimenti ti restano 'n' cursori aperti...
Allora, io ho creato una classe con al suo interno il metodo " ResultSet
myClass(String Url, String Query)".
Lo statement vene chiuso subito prima di ritornare il ResultSet. Ma la
connessione no!!!
P.S: Ogni volta che voglio fare una query, richiamo questo metodo.
Come posso fare??
Grazie e ciao!
Valerio Troiano.

Lo statement vene chiuso subito prima di ritornare il ResultSet.
?? Se chiudi lo Statement viene chiuso anche il corrispondente
ResultSet (almeno questo e' quello che dice la documentazione
di JDBC).
Davide

 di JDBC).
In effetti hai ragione: lo statement viene chiuso dentro una "if".Quindi
sicuramente la condizione per questa "if " non viene mai verificata, e di
conseguenza anche lo statement rimane aperto:  connessione e statement
vengono creati, inizializzati ed usati esclusivamente nel metodo da me
creato, che ritorna il ResultSet al metodo chiamante.
Come posso fare a chiudere connessione e statement, allora?

Come posso fare a chiudere connessione e statement, allora?
Comincia con il ripulire e sistemare il tuo codice. Apri lo
Statement, apri il ResultSet, lo usi e poi chiudi ResultSet
e Statement. A questo punto sei gia' sulla buona strada.
Poi dovresti anche poter chiudere la connessione.
Davide

 e Statement. A questo punto sei gia' sulla buona strada.
Il mio problema è proprio questo: il ResultSet viene ritornato al metodo
chiamante, ma lo Statement e la Connection rimangono aperte: non posso
chiuderle prima di ritornare il RS, e dopo è impossibile perchè il metodo
chiamato termina.
Forse dovrei usare un Thread.
Hai ICQ per caso??

Convengo con Davide nella ripulitura del codice...
Forse ti conviene incapsulare i dati del ResultSet in un oggetto (magari
anche un Vector se non è tanta roba) Altrimenti se non puoi fare a meno di
ritornarti un ResultSet, ti consiglio di fare la massima attenzione a come
usi le risorse del DB (qualsiasi esso sia)
#ICQ 69708049--> se ti serve aiuto, chiamami...
Giuseppe
--
I never went into the air thinking I would lose.
     Commander Randy "Duke" Cunningham, USN
Fight to fly, fly to fight, fight to win
     Motto, U.S. Navy Fighter Weapons Shool
     (TOPGUN)

 chiamato termina.
? Il metodo chiamato ritornera` pure.. a quel punto chiudi tutta la
baracca.