Newsgroup: it.comp.java
Titolo: Dov'e' l'errore?Ho provato ma....

Scusate ma sto fondendo... non so come fare x ovviare a questo problema di
istruzione... vi posto l'intera void e mi dite xche non va:
  public void RicercaSQL() {
  String SQLQuery = "";
  boolean Risultato;
   try {
      String url ="jdbc:ids://localhost:12/conn?dsn=IDSCorso";
      IDSDriver drv = new j102.sql.IDSDriver();
      Properties info = null;
      Connection conn = drv.connect(url, info);
      Statement stmt = conn.createStatement();
      String Id              = TxtId.getText();
      String Sesso        = TxtSesso.getText();
      String Cognome  = TxtCognome.getText();
      String Nome       = TxtNome.getText();
      String Indirizzo    = TxtIndirizzo.getText();
      String Citta         = TxtCitta.getText();
      String Prov         = TxtProv.getText();
      String Codfisc     = TxtCodfisc.getText();
      String Telefono   = TxtTelefono.getText();
      if ( Id != "" ) {
        SQLQuery = "ID = " + Id + " and";
      }
     else {
        SQLQuery = "ID = " + null + " and";
     }
     if (Cognome != "") {
        SQLQuery =  SQLQuery  + " COGNOME = '" + Cognome + "' and";
     }
     else {
       SQLQuery = "COGNOME = '" + null + "' and";
     }
     if (Nome != "") {
       SQLQuery =  SQLQuery  + " NOME = '" + Nome + "' and";
     }
     if (Indirizzo != "") {
        SQLQuery =  SQLQuery  + " INDIRIZZO = '" + Indirizzo + "' and";
     }
     if (Prov != "") {
        SQLQuery =  SQLQuery  + " CITTA = '" + Prov + "' and";
     }
     if (Codfisc != "") {
       SQLQuery =  SQLQuery  + " CODFISC = '" + Codfisc + "' and";
     }
     if (Telefono != "") {
       SQLQuery =  SQLQuery  + " TELEFONO = '" + Telefono + "' and";
     }
     if (Sesso != "") {
       SQLQuery =  SQLQuery  + " SESSO = '" + Sesso + "' and";
     }
    //Elimino dalla Stringa SQLQuery l'ultimo carattere (and)
     if (SQLQuery != "") {
       int a;
       a = SQLQuery.length() - 3;
        SQLQuery = SQLQuery.substring(0, a);
        //imposta nella select la condizione di filtro
        SQLQuery = "SELECT * FROM ANAGRAF where " + SQLQuery;
  Risultato = stmt.execute(SQLQuery);
      }
   else {
        //non è stata impostata alcuna condizione di filtro
        //quindi visualizza tutti i record...
       SQLQuery = "SELECT * FROM ANAGRAF ";
    Risultato = stmt.execute(SQLQuery);
      }
   if (Risultato) {
            ResultSet rs = stmt.getResultSet();
   if (rs != null) {
      rs.next();
               TxtId.setText(rs.getString(1));
               TxtCognome.setText(rs.getString(2));
      TxtNome.setText(rs.getString(3));
               TxtIndirizzo.setText(rs.getString(4));
               TxtCitta.setText(rs.getString(5));
               TxtProv.setText(rs.getString(6));
               TxtCodfisc.setText(rs.getString(7));
               TxtTelefono.setText(rs.getString(8));
               TxtSesso.setText(rs.getString(9));
    }else {
      TxtCognome.setText("ResultSet vuoto!");
    }
      } else {
        LblErrori.setText("Dato non trovato!");
      }
   } catch(SQLException ex) {
            LblErrori.setText(ex.toString());
   Area.setText(SQLQuery + " " + ex);
   }
  }
Questo qui sopra è il codice usato... chiaramente non finisce qui... ci sono
altre void ma quella che non funziona è questa... Dunque non capisco xche
anche se io non inserisco alcun valore nel TextField il comp passa lo stesso
nell' IF invece di saltarla...
vi posto l'errore...
SELECT * FROM ANAGRAF where ID =  and COGNOME = 'aaa' and NOME = '' and
INDIRIZZO = '' and CITTA = '' and CODFISC = '' and TELEFONO = '' and SESSO =
''  j102.sql.SQLException: [42000][Microsoft][ODBC Microsoft Access Driver]
Errore di sintassi (operatore mancante) nell'espressione della query 'ID =
and COGNOME = 'aaa' and NOME = '' and INDIRIZZO = '' and CITTA = '' and
CODFISC = '' and TELEFONO = '' and SESSO = '''.
Visto che io ho scritto aaa solo nel TextField del cognome x qualche caspita
di ragione passa pure x ID, NOME, ecc? non capisco...MISTERO!!!
Premetto che il tizio aaa di prova c'e' nel database di Access
grazie e spero sappiate aiutarmi!!!

 stesso nell' IF invece di saltarla... vi posto l'errore...
se fai Id != "" tu confronti un OGGETTO con una Stringa. Chiaramente
l'oggetto sara' sempre diverso dalla stringa. Quello che vorresti
(dovresti) fare tu e':
if( Id.length() != 0 )... oppure
if( Id.compareTo("") != 0 ) ...
Cosi' confronti la lunghezza della stringa o la presenza di una
stringa nulla.
Davide