Newsgroup: it.comp.java
Titolo: Ultimi problemi con connessione a db con Java

Scusate vi sembrerò pazzo ma un po' lo sto diventando.ho già scritto altri
messaggi sull'argomento..(vedere più in basso!!).Ora sono riuscito a far
connettere il db infatti è sparita l'eccezione 'errore nella creazione della
connessione' mentre continua a darmi quella contenuta nella funzione
InsertData "Errore imprevisto"
Cosa c'è di sbagliato???
Per me c'è qualche problema nel passaggio della connessione db1 e poi
nell'uso di db.connection voi che ne pensate
Grazie e spero sia l'ultima domanda sull'argomento!!!
Ecco il codice di InsertData
private void InsertData (ConnettiDB db, String na, String cg, String cf,
String cab)
        {
        try {
            Statement stat = db.connection.createStatement();
            String sqlCommand="INSERT INTO ListaCondomini VALUES (" + "na,"
+ "cg," + "cf," + "cab," + ")";
            stat.executeUpdate(sqlCommand);
            }
            catch (Exception e) {
                System.out.println("Errore imprevisto");
                }
        }
Potrebbe più banalmente trattarsi di un erroredella stringa sql??
Riporto per maggiore chiarezza anche il codice contenuto nella funzione che
instanzia la classe ConnettiDB e chiama la funzione InsertData
                ConnettiDB db1=new ConnettiDB();
                InsertData(db1, newName, newSurname, newCf, newCab);
Non riposto il codice di ConnettiDB che comunque sembra essere a posto (si
trattava di creare in modo diverso il driver ODBC
Si trova in qualche post indietro

Potrebbe piů banalmente trattarsi di un erroredella stringa sql??
[CUT]
certo la stringa sql non č corretta .. a prima vista quello che ti serve
dovrebbe essere una cosa del genere ...
String sqlCommand="INSERT INTO ListaCondomini VALUES ('" + na + "','" + cg +
"','" + cf + "','" + cab + "')";
Ti dň un piccolo consiglio č buona norma quando usi la INSERT INTO
specificare sempre anche il nome dei campi a cui stai dando un valore ..
per esempio .. č meglio fare INSERT INTO ANAGRAFICA (cognome,nome) VALUES(
'PAOLINO','PAPERINO') invece di INSERT INTO ANAGRAFICA
VALUES('PAOLINO','PAPERINO')
Ti dň un altro piccolo consiglio se permetti.. č utilissimo quando gestisci
le eccezioni e per debugging farti scrivere sia il codice di errore che lo
stacktrace...
Per visualizzare il tipo di errore basta che sostituisci il tuo catch con
questo:
             catch (Exception e) {
                 System.out.println("Errore imprevisto : " +
e.getMessage());
                 }
scusa la sintesi ma ho poco tempo per rispondere ...
Ciao ciao
Dani
--
Daniele Piras
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If at first the idea is not absurd then there is no hope for it. - Albert
Einstein
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ciao, grazie mille per l'aiuto che mi hai proposto.... ho fatto tutto ciò
che mi hai detto ma ancora niente!!!
la funzione InsertData è diventata così:
private void InsertData (ConnettiDB db, String na, String cg, String cf,
String cab)
        {
        try {
            Statement stat = db.connection.createStatement();
            String sqlCommand="INSERT INTO ListaCondomini (Nome, Cognome,
CodiceFiscale, AppBoxProp) VALUES ("+na+","+cg+","+cf+","+cab+")";
            stat.executeUpdate(sqlCommand);
            }
            catch (Exception e) {
                 System.out.println("Errore imprevisto : " +
e.getMessage());
                 }
        }
Spero di non aver fatto banali errori nel copiare quelllo che mi ha
suggerito Dani ma ho controllato più volte....
il messaggio di errore è:
Errore imprevisto : [Microsoft][Driver ODBC Microsoft Access] Errore di
sintassi nell'istruzione INSERT INTO.
Quindi dovrebbe trattarsi proprio di un problema dell'istruzione SQL! Mi
riuscite ad aiutare ancora??
p.s. Tutti i consigli sono bene accetti, io sono alle prime armi e devo
imparare molto!!!
Grazie
Paolo

 sintassi nell'istruzione INSERT INTO.
[CUT]
sì che hai fatto errori :)) .... ti sei dimenticato gli apici singoli ...
fai attenzione che nel values ci sono pure degli apici singoli ..
deve essere fatto così
String sqlCommand="INSERT INTO ListaCondomini (Nome, Cognome,CodiceFiscale,
AppBoxProp) VALUES ('"+na+"','"+cg+"','"+cf+"','"+cab+"')"
ahh dimenticavo! la mia sql funziona se sono tutti dati di tipo stringa ...
ma dai nomi penso che sia così ...


trattava di creare in modo diverso il driver ODBC
Non credo di aver capito bene, ma...
Hai creato un DSN appropriato che si riferisca al tuo db (Access se non 
sbaglio)?
PS
Non fare caso al tono, devo difendere la mia reputazione di acido-
bilioso :-)
-- 
Ciao
	Fabrizio C.

 ha scritto nel messaggio
news:a2rqv7$p8v$1...@pegasus.tiscalinet.it...


Effettivamente hai ragione ma io ho iniziato a muovermi in Java da Dicembre
e senza un corso serio ma molto fai da te e con poche lezioni generiche
all'Università....ora devo fare questo progetto e praticamente sto facendo
esperienza sul campo....comunque tutti i consigli mi sono utili (magari non
tutti li riuscirò a mettere in pratica da ora ma spero ben presto di
imparare a essere un decente programmatore...
Grazie mille
Paolo