Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 01-06-2006, 18.52.23   #1
rosariok24
Junior Member
 
L'avatar di rosariok24
 
Registrato: 23-12-2005
Messaggi: 190
rosariok24 promette bene
[JAVA] jdbc odbc correlazione database

Salve ragazzi allora chiedo una mano di aiuto perch non so come far partire le interrogazioni sql, ora vi posto il codice che mi da problemi:

private boolean find()
{
boolean b=false;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn= DriverManager.getConnection("jdbcdbc:customcd"," ","");
Statement st =conn.createStatement();
ResultSet r=st.executeQuery("SELECT Username FROM utente");
while(r.next())
{
if(r.getString("Username").compareTo(username.getT ext())!=1) b=true;
}
conn.close();
st.close();
r.close();

}
catch(SQLException sqe){
System.out.println("problema sql");
}
catch(ClassNotFoundException e)
{
System.out.println("Errore classe non trovata");
}
return b;
}

allora prima di fare il tutto ho creato il collegamento in odbc un dsn utente collegato al mio database e con il nome del driver che si chiama customcd. il problema che riscontro quando vado a fare la query sql mi da un errore di SQLException mostrandomi in console la stringa di eccezione "problema sql" se tolgo il comando di query compreso il while non mi da nessun errore nell'invocazione del metodo!!! grazie
___________________________________

Athlon 64bit 6000+ x2 Asus M2N-E
Ati Radeon x2600xt 512mb
2x200gb maxtor raid0
1hd Western Digital 74gb 10000rpm
2gb ddr2 pc800 kingston
case thermaltake matrix

Ultima modifica di rosariok24 : 02-06-2006 alle ore 11.31.39
rosariok24 non  collegato   Rispondi citando
Vecchio 01-06-2006, 19.56.32   #2
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Ti consiglio di:

1) usare il catching delle eccezioni in maniera differente, ovvero: stampa s una stringa di commento ("problema sql"), ma poi fai fruttare anche le informazioni di errore che vengono generate, stampandole. Io normalmente, se voglio stampare a video (o analogamente su file) questo genere di informazioni, faccio un:

Codice:
System.out.println("Stringa di commento" + e.printStackTrace());
2) Controllare accuratamente l'uso del metodo compareTo(String s): restituisce 0 se le due stringhe sono lessicograficamente identiche (e in questo equivale ad un true del metodo equals), un intero negativo se la stringa su cui chiamato il metodo precede lessicograficamente la stringa passata come parametro, un intero positivo altrimenti;


Magari guardando l'errore generato si riesce a capire la natura del problema



(ps: immagino che il codice sia parte di un meccanismo di autenticazione... non si presta a SQL injection, e questo buono (Y) ... se il tutto deve andare online ocio per, sempre e comunque, a filtrare in modo opportuno i parametri )



Ciao

Ultima modifica di Dav82 : 01-06-2006 alle ore 20.04.21
Dav82 non  collegato   Rispondi citando
Vecchio 01-06-2006, 20.09.18   #3
rosariok24
Junior Member
 
L'avatar di rosariok24
 
Registrato: 23-12-2005
Messaggi: 190
rosariok24 promette bene
ok per l'equals non so perch mi viene in mente semmpre compareTo e poi devo fare la comparazione con interi invece di fare direttamante con una restituzione booleana, poi il problema che io eliminando il while mi da errore di exception sql elimino anche la chiamata sql e il prob si risolve ossia la connessione la fa!!! cmq sto facendo un progetto di ingegneria del software dove il software deve essere ambientato in un negozio di custom cd per la masterizzazione di proprie compilation e il codice che vedi dovrebbe verificare l'esistenza di una username per poi inserire i parametri di registrazione.

non so aiutami tu io nn ho ma lavorato con database relazionali in java per cui sono principiante con jdbc e odbc ciao
___________________________________

Athlon 64bit 6000+ x2 Asus M2N-E
Ati Radeon x2600xt 512mb
2x200gb maxtor raid0
1hd Western Digital 74gb 10000rpm
2gb ddr2 pc800 kingston
case thermaltake matrix
rosariok24 non  collegato   Rispondi citando
Vecchio 01-06-2006, 20.22.29   #4
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Uh bene, quindi i problemi di injection e menate varie, se stai facendo un progettino di IngSw, non penso siano da prendere in considerazione



Quota:
Originariamente inviato da rosariok24
non so aiutami tu io nn ho ma lavorato con database relazionali in java per cui sono principiante con jdbc e odbc ciao
L'aiuto te l'ho dato

Quota:
Originariamente inviato da Dav82
Ti consiglio di:

1) usare il catching delle eccezioni in maniera differente, ovvero: stampa s una stringa di commento ("problema sql"), ma poi fai fruttare anche le informazioni di errore che vengono generate, stampandole. Io normalmente, se voglio stampare a video (o analogamente su file) questo genere di informazioni, faccio un:

Codice:
System.out.println("Stringa di commento" + e.printStackTrace());

e d'altra parte hai giustamente notato pure tu che il problema proprio nell'interrogazione SQL, in quanto senza executeQuery() non viene sollevata eccezione.


Morale: stampa l'errore completo, cos magari c' qualche informazione in pi e si pu giungere a una soluzione...
Dav82 non  collegato   Rispondi citando
Vecchio 01-06-2006, 20.29.58   #5
rosariok24
Junior Member
 
L'avatar di rosariok24
 
Registrato: 23-12-2005
Messaggi: 190
rosariok24 promette bene
Allora ora quando vado a mettere il parametro di eccezione.printStackTrace() mi dice nella compilazione
void type not allowed here!!! mo nn so che fa c smanetto un'altro po nel frattempo che elabori le risposta!!!
___________________________________

Athlon 64bit 6000+ x2 Asus M2N-E
Ati Radeon x2600xt 512mb
2x200gb maxtor raid0
1hd Western Digital 74gb 10000rpm
2gb ddr2 pc800 kingston
case thermaltake matrix

Ultima modifica di rosariok24 : 01-06-2006 alle ore 20.35.59
rosariok24 non  collegato   Rispondi citando
Vecchio 01-06-2006, 20.40.30   #6
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
S, mi rendo conto che ho scritto una cappellata micidiale Sorry


O si fa

Codice:
System.out.println("Stringa di commento" + e.toString());
oppure

Codice:
System.out.println("Stringa di commento");
e.printStackTrace();
Dav82 non  collegato   Rispondi citando
Vecchio 01-06-2006, 20.53.34   #7
rosariok24
Junior Member
 
L'avatar di rosariok24
 
Registrato: 23-12-2005
Messaggi: 190
rosariok24 promette bene
allora ecco l'errore che occorre metto l'immagine a disposizione. fammi sapere
___________________________________

Athlon 64bit 6000+ x2 Asus M2N-E
Ati Radeon x2600xt 512mb
2x200gb maxtor raid0
1hd Western Digital 74gb 10000rpm
2gb ddr2 pc800 kingston
case thermaltake matrix
rosariok24 non  collegato   Rispondi citando
Vecchio 01-06-2006, 21.36.17   #8
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Ok, come vedi, l'errore avviene alla riga 233 del file registra.java, che contiene appunto il metodo find(): che istruzione corrisponde a quella riga?

Anyway, il resultSet chiuso, e questo pu avvenire perch lo statement o la connessione o il resultSet sono stati chiusi (ma ci non avviene nel tuo codice) oppure sono andati in timeout (ma anche qui direi di no) oppure... boh

Non mi sembra ci siano errori evidenti...
Dav82 non  collegato   Rispondi citando
Vecchio 01-06-2006, 21.40.23   #9
rosariok24
Junior Member
 
L'avatar di rosariok24
 
Registrato: 23-12-2005
Messaggi: 190
rosariok24 promette bene
io ora vedo sul mio libro mattone java database, e vediamo che mi consiglia!!!!

cmq so solo che jdbc non una cosa molto facile da utilizzare!!!

se vuoi ti posto la classe compreso il database vuoto per fare dei test personali???
___________________________________

Athlon 64bit 6000+ x2 Asus M2N-E
Ati Radeon x2600xt 512mb
2x200gb maxtor raid0
1hd Western Digital 74gb 10000rpm
2gb ddr2 pc800 kingston
case thermaltake matrix
rosariok24 non  collegato   Rispondi citando
Vecchio 01-06-2006, 21.43.14   #10
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Al momento non ho il sw adatto installato, sorry
Dav82 non  collegato   Rispondi citando
Vecchio 01-06-2006, 22.58.20   #11
Sergio Neddi
Gold Member
Top Poster
 
L'avatar di Sergio Neddi
 
Registrato: 07-04-2000
Loc.: Padova-Vicenza
Messaggi: 4.814
Sergio Neddi promette bene
@rosariok24

Non ti so aiutare ma comunque ti comunico che devi modificare il titolo del thread come da regolamento:

http://www.wintricks.it/forum/showth...threadid=90815
___________________________________

Con il PC risolvo molti problemi che prima non avevo. - Coltiva Linux che Windows si pianta da solo!
Sergio Neddi non  collegato   Rispondi citando
Vecchio 03-06-2006, 13.19.21   #12
rosariok24
Junior Member
 
L'avatar di rosariok24
 
Registrato: 23-12-2005
Messaggi: 190
rosariok24 promette bene
Allora ho risolto il problema per quanto riguarda la query con select ma ora ho un problemino per quanto riguarda l'insert into ora posto il codice e metto anche la tupla della tabella dove devo andare ad inserire il tutto:

ecco la tupla: utente(Username,Nome,Cognome,CF,Indirizzo,Telefono ,Email,Password);

ecco il codice:

private void inserisci()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn= DriverManager.getConnection("jdbcdbc:customcd");
Statement stat= conn.createStatement();
String query="INSERT INTO utente(Username,Nome,Cognome,CF,Indirizzo,Telefono ,Email,Password) VALUES("+username.getText()+","+nome.getText()+"," +cognome.getText()+","+cf.getText()+","+indirizzo. getText()+","+telefono.getText()+","+email.getText ()+","+password.getText()+")";


stat.executeUpdate(query);
}
catch(SQLException e)
{
System.out.println("problema sql");
e.printStackTrace();
}
catch(ClassNotFoundException e)
{
System.out.println("Porblema di classe:");
e.printStackTrace();
}
}


e metto anche l'immagine di errore che mi da quando inserisco e in pi vi do la videata dei parametri che inserisco nell'interfaccioa grafica. Fatemi sapere per favore:
___________________________________

Athlon 64bit 6000+ x2 Asus M2N-E
Ati Radeon x2600xt 512mb
2x200gb maxtor raid0
1hd Western Digital 74gb 10000rpm
2gb ddr2 pc800 kingston
case thermaltake matrix
rosariok24 non  collegato   Rispondi citando
Vecchio 03-06-2006, 14.57.10   #13
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Non ho tempo (e mezzi, attualmente) per vedere cosa ci sia di sbagliato (anche perch servirebbe il DB e tutto il resto del codice), cmq come vedi dall'errore, il problema sta nella sintassi della query: il mio consiglio stampati la stringa che contiene i comandi SQL (ovvero la stringa query, perch senza vedere cosa genera l'errore, un po' dura correggere l'errore stesso) e prova a guardare, sintassi SQL e struttura del tuo DB alla mano, se per caso c' qualche errore
Dav82 non  collegato   Rispondi citando
Vecchio 03-06-2006, 15.10.11   #14
rosariok24
Junior Member
 
L'avatar di rosariok24
 
Registrato: 23-12-2005
Messaggi: 190
rosariok24 promette bene
risolto era problema nella query non ho messo gli apici ai valori
___________________________________

Athlon 64bit 6000+ x2 Asus M2N-E
Ati Radeon x2600xt 512mb
2x200gb maxtor raid0
1hd Western Digital 74gb 10000rpm
2gb ddr2 pc800 kingston
case thermaltake matrix

Ultima modifica di rosariok24 : 03-06-2006 alle ore 16.18.47
rosariok24 non  collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
Il codice HTML OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Personal Video Database 0.9.4 Thor Archivio News Software 0 30-07-2007 11.13.26
kaspersky Database danneggiato..., help database corrupted.... eolorossi Software applicativo 2 11-01-2006 12.40.51
[VB6] Problemi con ricerca in database access Longhorn Programmazione 4 18-09-2005 22.40.54
Introduzione ai database GiulioCesare Programmazione 1 03-06-2005 01.48.45

Orario GMT +2. Ora sono le: 09.24.00.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright Jelsoft Enterprises Limited.