Newsgroup: it.comp.java
Titolo: Una maledetta insert

Premetto che sono una niubba quindi spero perdonerete le castronerie.
Sono due giorni che mi rompo la testa su un insert in un db SQLServer.
Premetto che io prendo tutti i dati da un altro DB, dove sono tutte
stringhe:
		while(rs.next()){
		String cod_pratica=rs.getString("COD_PRATICA");
		String cod_fiscale=rs.getString("COD_FISCALE");
		String anno_competenza=rs.getString("ANNO_COMPETENZA");
		String cap=rs.getString("CAP");
		String prov_res=rs.getString("PROV_RES");
		String com_res=rs.getString("COMUNE_RES");
		String provenienza=rs.getString("FLAG_PROVENIENZA");
		String cognome=rs.getString("COGNOME");
		String nome=rs.getString("NOME");
		String indirizzo=rs.getString("INDIRIZZO");
		String disoccupazione=rs.getString("DISOCCUPAZIONE");
		String tratt_fav=rs.getString("TRATT_M_F");
		String anf_saldo=rs.getString("ANF_SALDO");
		String anf_acc=rs.getString("ANF_ACCONTO");
		String anf_residui=rs.getString("ANF_RESIDUI");
		String pag_diretto=rs.getString("ASSEGNO");
		String cin=rs.getString("CIN");
		String abi=rs.getString("COD_ABI");
		String cab=rs.getString("CAB");
		String conto=rs.getString("CONTO");
		String trattenuta=rs.getString("IMP_TRATT");
		String data_n=rs.getString("DATA_NASCITA");
Poi li devo spiattellare su varie tabelle, dove sono quasi tutti campi
di tipo bit.
Quindi penso di dover parsare i vari valori (dico bene?):
quindi:
p=c.prepareStatement("INSERT INTO TDatiDOmanda
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
e via di seguito.
		p.setString(1,cod_pratica);
						//System.out.println(Integer.parseInt(cod_pratica));
		p.setInt(2, Integer.parseInt(anno_competenza));
		p.setString(3, cod_fiscale);						p.setString(4, "23456");
         p.setInt(5,1234);							p.setInt(6,1234);
		p.setBoolean(7, b);
		p.setString(8,provenienza);						p.setBoolean(9,b);
		p.setBoolean(10,b);
		p.setBoolean(11,b);							p.setBoolean(12,b);							p.setBoolean(13,b);							p.setString(14,"12345678");
		p.setBoolean(15,b);							p.setString(16,provenienza);
		p.setBoolean(17,b);
		p.setBoolean(18,b);
p.setInt(19,1234);							p.setBoolean(20,b);							p.setBoolean(21,b);
Solo che ho un numero x di errori del tipo NumberFormat Exception, e
ovviame la inser con solo setString non me la fà...
Idee???

> Idee???
Intanto (non c'entra) ti consiglio di usare la insert con i nomi dei
campi.
Poi, ovviamente alcuni dei campi che ti aspetti numerici e che quindi
cerchi di parsare, ovviamente non lo sono.
Questo è dovuto o a dati errati dell'altro db o a dati formattati (es:
importo con i  punti e le virgole come 1.200,09) o a spazi prima e
dopo. Per quest'ultima eventualità ti conviene sempre parsare le
stringhe trimmate (stringa.trim()).

pion...@inwind.it
 ha scritto:

Intanto grazie per la risposta!
In realtà ho provato a fare un System.out.println di quello che
ottengo dal primo db e vorrei passare a int ed ottengo (es) un numero
di 13 cifre....quando vado a fare Integer.parseInt mi dà appunto
l'eccezione ...
qualche piccola delucidazione du string.trim??

Un'altra curiosa uscita del wsad.
Fino a ieri la insert non funzionava, ma almeno prendere i dati dal
resultset non era un problema. Il resultset conteneva i dati presei da
una select su due tabelle in join.
Adesso quando vado a prendere il valore dei campi che vengono dalla
seconda tabella mi dà errore...indicatore nullo, come se fosse
sbagliato l'ordine...ma non è stato cambiato, ne è stato cambiato il
DB......
Barbara ha scritto:


 qualche piccola delucidazione du string.trim??
Restituisce la stessa stringa senza gli (eventuali) spazi alla fine;
se ad esempio gli dai in pasto "pippo   " ti restituisce "pippo"
-- 
----------------------------------------------------------------------------------
       /)/)		La mia vita è tutta rose e fiori...
      ( '.')
    o(('')('')				... ma io sono allergico !!!

Un minuto di vergogna per la sottoscritta....^^
Ci sono arrivata dopo lunghe peregrinazioni.
Altro errore che facevo era non sbagliare il tipo di oggetto data che
usavo, visto che datetime vuole un timestamp (o al massimo una stringa
"gg/mm/aaaa").
Grazie a tutti...
STB_Caos ha scritto:
