Formulazione Query: INSERT

giovedì 27 settembre 2007 - 15.06

ojalà Profilo | Newbie

CIAO!
visto che prima mi siete stati cosi di aiuto..ne aprofitterei..perchè ho un altro problemino..questa volta con insert.
Nel database di sql server ho la tabella Animale con i seguenti campi:
Cod_animale(chiave),nome,Specie,Genere,Cod_gabbia

l'inserimento lo voglio fare dall'applicazione java che si interfaccia al database:

i campi vengono presi dal jtextField nel quale sono inseriti:

if(PulsantePremuto==jButton6){

String insert = new String();
insert = jTextField2.getText();
System.out.println(insert);

try {
String s,p = new String();
Connection conn = DriverManager.getConnection("jdbc:odbc:prova","ELISA","");
Statement stmt = conn.createStatement();

//QUESTA NON FUNZIONA
stmt.executeUpdate("INSERT INTO prova.dbo.Animale" + "(Cod_animale,Nome,Specie,Genere,Cod_gabbia)" + "VALUES ( " +insert+ ")");

//fUNZIONA ma i valori sono immessi da programma e non da jtextfield2
//stmt.executeUpdate("INSERT INTO prova.dbo.Animale" + "(Cod_animale,Nome,Specie,Genere,Cod_gabbia)" + "VALUES ('RA4','fisc','anfibio','rana','G1')");

stmt.close();
conn.close();
}
catch (Exception er) {er.printStackTrace();}
}

Come posso sistemare la insert non funzionante?
l'errore che otteengo è il seguente:

The name "RA4" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted

Grazie ancora!

alx_81 Profilo | Guru

>CIAO!
ciao!

>visto che prima mi siete stati cosi di aiuto..ne aprofitterei..perchè
>ho un altro problemino..questa volta con insert.
>Nel database di sql server ho la tabella Animale con i seguenti
>campi:
>Cod_animale(chiave),nome,Specie,Genere,Cod_gabbia
>l'inserimento lo voglio fare dall'applicazione java che si interfaccia
>al database:
>
>//QUESTA NON FUNZIONA
>stmt.executeUpdate("INSERT INTO prova.dbo.Animale" + "(Cod_animale,Nome,Specie,Genere,Cod_gabbia)"
>+ "VALUES ( " +insert+ ")");
>
>//fUNZIONA ma i valori sono immessi da programma e non da jtextfield2
>//stmt.executeUpdate("INSERT INTO prova.dbo.Animale" + "(Cod_animale,Nome,Specie,Genere,Cod_gabbia)"
>+ "VALUES ('RA4','fisc','anfibio','rana','G1')");
>
>Come posso sistemare la insert non funzionante?
>l'errore che otteengo è il seguente:
>
>The name "RA4" is not permitted in this context. Valid expressions
>are constants, constant expressions, and (in some contexts) variables.
>Column names are not permitted
E' molto importante capire cosa c'è nel textbox che riempie la stringa "insert".
Comunque, il problema sta nella concatenazione delle stringhe.. considera che la sintassi che ottieni deve essere del tutto identica (con valori al max diversi) a quella che funziona. Quindi, direi che ti conviene fare un bel debug, visualizzando la stringa che ottieni dalla concatenazione, prima di eseguire..
Vedrai che trovi l'errore subito..
>
>Grazie ancora!
di nulla!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

ojalà Profilo | Newbie

Sono riuscita a fare andare l'insert cosi:

stmt.executeUpdate("INSERT INTO prova.dbo."+selezionatabella+" "+record+" "+"VALUES ( " + insert + ")");

poi però adun certo punto ha smesso di andare dicendomi:

Incorrect syntax near the keyword 'null'

volevo chiedere se è una cosa che può dipendere dal database..

alx_81 Profilo | Guru

>Sono riuscita a fare andare l'insert cosi:
>
>stmt.executeUpdate("INSERT INTO prova.dbo."+selezionatabella+"
>"+record+" "+"VALUES ( " + insert + ")");
>poi però adun certo punto ha smesso di andare dicendomi:
>Incorrect syntax near the keyword 'null'
>volevo chiedere se è una cosa che può dipendere dal database..
Come dice l'errore, c'è un errore di sintassi.. e probabilmente è il db a darti errore, ma di sintassi..

ripeto.. stampati la stringa concatenata e controlla cosa viene fuori, è il modo migliore per capire quello che produci.


Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5