Newsgroup: it.comp.java
Titolo: problema con query

Abbiate un po' di pazienza, sono 'nuovo' in Java
Cerco di esporre brevemene il mio problema:
il programma fa una select su di una tabella e scrive i dati si di una
JTable, l'utente può selezionare un record, il prog apre un'internal frame
dove ho la possibilità di modificare i dati.
A questo punto, attraverso un pulsante sulla toolbar richiamo un metodo che
mi esegue l'update sul db (al metodo di update invio la query)
Il problema è che vengono inviate non solo la query attuale, ma anche le
query di update precedentemente fatte.
Aiuto.
Se mi dite di quali info avete bisogno cercherò di essere più preciso.
nik

Se mi dite di quali info avete bisogno cercherò di essere più preciso.
Ok. Prova a rispiegare e/o manda un po' di codice.
-- 
Ciao
	Fabrizio C.

"Fabrizio Camera" <f.came...@Mtiscali.it> ha scritto nel messaggio
news:MPG.17f68a248...@powernews.libero.it...

Spero adesso di essere stato più chiaro (!!)
public Edit(String idArticolo,boolean veroFalso,String modo) {
        super(idArticolo,veroFalso);
.......................................
.......................................
ToolBar.btnConferma.addMouseListener(new MouseListener() {
       public void mouseClicked(MouseEvent evt) {
        ModificaArticolo(articolo);
        setVisible(false);
       }
.......................................
...................................
}
public class Articolo {
 public String id;
 public String codice;
 private String descrizione;
 private String costo;
 private String prezzo;
 private String note;
 private Connection con;
 private ResultSet rs;
private void ModificaArticolo(Articolo articolo)
    {
     articolo = new Articolo();
     String strFornitore = cmbFornitore.getSelectedItem().toString();
     int pos = strFornitore.lastIndexOf("-");
     strFornitore=strFornitore.substring(0,pos);
     articolo.setCodice(lblCodice.getText());
     articolo.setId(lblId.getText());
     articolo.setCosto(txtCosto.getText());
     articolo.setPrezzo(txtPrezzo.getText());
     articolo.setNote(txtNote.getText());
     articolo.Modifica(articolo);
    }
protected void Modifica (Articolo articolo)
    {
 String query1="Update articoli set ";
 String
query2="costo='"+getCosto()+"',note='"+getNote()+"',prezzo='"+getPrezzo+"'";
  String query3=" where id= "+
articolo.id
+"";
  String query = query1+query2+query3;
  System.out.println(query);
  try
  {
   SQLUpdate(query);
  }
  catch(Exception e)
  {
   e.printStackTrace();
   System.out.println ("Errore " +e);
         }
    }
protected void SQLUpdate(String strQuery) {
  if (con == null)
   con = FrameCerca.con;
  try
  {
   Statement stmt = con.createStatement();
   stmt.executeUpdate(strQuery);
  }
  catch(SQLException e) {
   System.out.println("SQLRicerca: "+e);
  }
 }
}
Grazie.
Nicola

 > Ok. Prova a rispiegare e/o manda un po' di codice.
A volte sono proprio imbranato, avevo perso la prima parte del messaggio.
Questo è quello giusto
Ecco il codice, spero di avere postato tutto il necessario.
Cerco di ri-spiegare anche il problema:
Quando dal metodo Edit richiamo ModificaArticolo setta i valori della classe
articolo in base a quanto scritto nei vari JTextField,
poi con Modifica crea la query che viene eseguita da SQLUpdate.
Quando però dopo avere modificato un articolo, vado a modificarne un altro,
il metodo Modifica passa a SQLUpdate prima la query corretta, poi  la solita
query ma con 
articolo.id
 dell'articolo precedentemente modificato, andando a
cambiare anche quel record.


cambiare anche quel record.
[CUT]
Per quello che si può vedere dal codice che hai postato, non sembrano 
esserci problemi. Però può essermi sfuggito qualcosa...
Prova ad impostare un breakpoint e ad eseguire passo-passo questa parte 
di codice. Di più non so dirti.
Ultima cosa (che non c'entra con il problema): per preparare la stringa 
della query, è meglio usare StringBuffer o, meglio ancora, usare dei 
PreparedStatement.
HTH
-- 
Ciao
	Fabrizio C.