Newsgroup: it.comp.java
Titolo: Problema con SQL : un baco ?

Salve a tutti,
ho creato un'applicazione che accede in maniera "pesante" ad un database
configurato correttamente come sorgente dati sotto win32.
Per "pesante" intendo dire che esegue query in modo quasi continuo.
Ad un certo punto, senza un motivo apparente, viene lanciata una
SQLException con descrizione: "General error".
Non capisco quale sia il problema, perchè utilizzando lo stesso codice sotto
JBuilder2 (non uso alcuna classe non standard) il programma non si
inceppa....
Nota : utilizzo un'unica istanza di Connection che non chiudo mai. E' forse
necessario qualcosa
come un "flush" per "decongestionare" la connessione ?
Un altro dettaglio. Una query richiede mediamente 30 msec. Sotto C++, sapete
dirmi che tempi si possono ottenere ?
Rispondetemi anche in privato, se volete !
Grazie,
Scorpio.
--
"Long is the way, and hard, that out
  of hell leads up to light "
[Milton]

 ha scritto nel messaggio ...


 wrote in message
oqgF5.13340$Z95.4...@news.infostrada.it...


 SQLException con descrizione: "General error".
Ciao Scorpio,
una domanda che mi viene dall'esperienza: ti ricordi di fare resultset.close();
resultset = null, statement.close(); statement = null; oppure ti dimentichi
qualcosa aperto? (i rif = null servono per 'dare una mano' al gc)
Perché i miei primi tentativi di accesso ad Access fallivano dopo un po' di
accessi perchč mi scordavo di chiudere un resultset...
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

RecordSet....).
Usando access, non ci si puo' aspettare di piu'. :)
Una parola riguardo ODBC: non cambia granche' rispetto a JDBC, dato che, anche 
usando le api win32, e' SQL dinamico. Le prestazioni cambiano notevolmente 
quando si usa SQL statico, embedded - ovviamente se il database che usi te lo 
permette (certo non Access, ma cose come Oracle o DB2), e il database supporta 
il tuo linguaggio di programmazione come linguaggio host (di solito C++ e 
COBOL, Java non l'ho mai visto).
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun

 wrote in message
39E5BDB2...@sdb.it...


ObjectZone - 
http://space.tin.it/computer/csadun
|
| Bruno Bossola
| A Java Software Engineer :-)
|

La colpa è di access.
Non è un bug, ma proprio un limite di access.

 
sqlj è il sistema, e credo che presto verrà integrato anche da altri
dbms.
ciao
Ugo
__________________________________________________________________________
"La perfezione si ottiene non quando non c'è nient'altro da aggiungere, 
 bensì quando non c'è più niente da togliere." Antoine de Saint-Exupéry
__________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Enterprise Java Consulting
@mail: Ugo.L...@Flashnet.it
Home Page: 
http://www.ugolandini.net
Mentoring: 
http://www.projectoo.com
Work Phone: 06/5814740
Fax Phone: 06/233207542 
Cell Phone: 0347/6310749 - 0347/4783580
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 scappo a casa!
lasciamo perdere il discorso traffico!!
...almeno a Roma non ha piovuto...
-- 
Ciao, Matteo                         !!  It has to start somewhere
                                     /\  It has to start sometime
mailto:
matteo.mattia
 (at) 
libero.it
  \/  What better place than HERE
                                     　  What better time than NOW

 accessi perchè mi scordavo di chiudere un resultset...



Mi censuro da solo : i tempi riportati sono una sciocchezza... si tratta di
36 msec per query,
contro i 150 attuali. Chissà a che pensavo....




Più o meno: una roba del tipo:
#sql { SELECT sal INTO :salary FROM emp WHERE ename = :name };
Poi dai in pasto il file a un precompilatore che traduce questa roba in
chiamate JDBC. Se ti interessa trovi maggiori informazioni su
http://technet.oracle.com/tech/java/sqlj_jdbc/
Ciao, Cris

-- 
Cristian Veronesi ><((((º> 
http://www.crpa.it
Haleway sheyaamod! ("Speriamo che tenga", disse l'Eterno
contemplando il mondo appena creato)


-- 


 Interessante il fatto che usino comunque JDBC come layer di implementazione.
Si, e proprio per questo non ne vedo il vantaggio. Tanto vale allora
scrivere direttamente il codice JDBC, che è molto semplice. Un conto è
il precompilatore per C che è molto comodo (un semplice statement SQL
viene tradotto in una serie di chiamate mostruose a funzioni C di
bassissimo livello), ma con Java preferisco scrivermi a manina il codice
JDBC... tra l'altro così scrivo fin da subito SQL dinamico, tanto prima
o poi va a finire che te lo chiedono ("non si può dare all'utente la
possibilità di scegliere l'ordinamento?" ;))
Ciao, Cris


possibilità di scegliere l'ordinamento?" ;))
-- 


 devo cambiare tutto il mio codice!
Mah guarda per esperienza mia: mi dimenticavo di chiudere il resultset, e dopo
una ventina di query (pesanti) il tutto diventava inutilizzabile, e finiva per
inchiodarsi. Una volta che gli ho chiuso il rs, Access ha cominciato ad andare,
e da quel momento le prestazioni sono notevolmente migliorate e il programma ha
preso ad andare come un orologio. Probabilmente la stessa cosa con un altro
database avrebbe avuto un comportamento diverso, chissà... infatti ora vorrei
provare a migrare tutto sotto PostgreSQL.
Il discorso -da parte mia- è semplice: uso lo stesso statement per più query
(aggiornamento, ricerca...); vabbé che sono query abbastanza piccole e veloci,
ma preferisco comunque chiuderlo esplicitamente, in fondo è vero che gli
oggetti vengono chiusi anche da soli, ma se non mi inganno è più pulito e
corretto fare così; forse mi sbaglierò, voi come vi comportate in questi casi?
Per quanto riguarda il gc, è una mia pratica usuale mettere tutti i riferimenti
a null per cercare di dargli una mano. Anzi se qualcuno vuole iniziare una
discussione anche piccola in merito ne sarei felice.


 wrote in message
8FCC654A1c...@194.19.1.61...


,

Sent via Deja.com 
http://www.deja.com/
Before you buy.

siate davvero ferrati sull'argomento...
-- 


 wrote in message
8FCC8349Ec...@194.19.1.61...


 possibilità di scegliere l'ordinamento?" ;))
A scapito delle prestazioni.
La domanda sucessiva sara': "non si può evitare che l'utente vada in
giro mentre aspetta la risposta?"
-- 
Dr. Ugo Gagliardelli, Modena, Italy
Spaccamaroni andate a cagare/Spammers not welcome