Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [java] database update

  1. #1

    [java] database update

    Ciao a tutti, non riesco ad aggiornare i dati in una tabella. Vi scrivo la funzione che ho creato:

    private String settaInfoUtenteIscr(String nick,String dati){
    String info="";
    String app[]=dati.split("¤");
    System.out.println("array lungo: " + app.length);
    if(app.length==11){
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch(ClassNotFoundException pe){
    System.out.println(pe.toString());
    System.out.println("Il driver non può essere caricato");
    info="false";
    }
    try{
    Connection conn = DriverManager.getConnection("jdbcdbc:utentiJChat","","");
    ResultSet rs=null;
    String strSQL="UPDATE info SET nome= ? ; dataNascita= ? ; stato= ? ; prov= ? ; citta= ? ; mail= ? ; avatar= ? ; segniPart= ? ; hobby= ? ; autorPosta= ? ; visualInfo= ? WHERE nickname= ? ;";
    PreparedStatement pstmt= conn.prepareStatement(strSQL);
    for(int i=0;i<=10;i++){
    pstmt.setString(i+1,app[i]);
    }
    pstmt.setString(12,nick);
    (linea 187) rs=pstmt.executeQuery();
    info=app[0]+"¤"+app[1]+"¤"+app[2]+"¤"+app[3]+"¤"+app[4]+"¤"+app[5]+"¤"+app[6]+"¤"+app[7]+"§"+app[8]+"§"+app[9]+"§"+app[10];

    }
    catch(SQLException _sql){
    System.out.println(_sql.getMessage());
    _sql.printStackTrace(System.out);
    System.out.println("Problemi di lettura del DB");
    info="false";
    }
    }else{
    info="false";
    }

    return info;
    }

    ----------------------------------------------------------------------

    mi da i seguenti errori in esecuzione:

    [Microsoft][Driver ODBC Microsoft Access] Caratteri non previsti dopo la fine d
    ll'istruzione SQL.
    java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Caratteri non
    revisti dopo la fine dell'istruzione SQL.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc .java:6106)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java :6263)
    at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:25 64)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Jd bcOdbcPreparedStat
    ment.java:214)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQue ry(JdbcOdbcPrepare
    Statement.java:89)
    at NetServer.settaInfoUtenteIscr(JChatServer.java:187 )
    at NetServer.access$400(JChatServer.java:6)
    at NetServer$ConnessioneClient.run(JChatServer.java:3 90)
    at java.lang.Thread.run(Thread.java:536)
    Problemi di lettura del DB

    ----------------------------------------------------------------------

    Qualcuno sa correggermi o darmi un altro sistema (esempio) funzionante?
    Grazie a tutti!!!

  2. #2
    l'istruzione è set campo=valore, campo=valore, non utilizzare il ;
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  3. #3
    L'ho cambiati ora il messaggio è questo:

    [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'e
    spressione criterio.
    java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Tipi di dati no
    n corrispondenti nell'espressione criterio.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc .java:6106)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java :6263)
    at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:25 64)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Jd bcOdbcPreparedState
    ment.java:214)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQue ry(JdbcOdbcPrepared
    Statement.java:89)
    at NetServer.settaInfoUtenteIscr(JChatServer.java:187 )
    at NetServer.access$400(JChatServer.java:6)
    at NetServer$ConnessioneClient.run(JChatServer.java:3 90)
    at java.lang.Thread.run(Thread.java:536)
    Problemi di lettura del DB

    ----------------------------------------------------------------------

    che significa? potrebbero essere i campi di tipo boolean a darmi questi problemi? se si come si inserisce un campo boolean?

  4. #4
    credo siano proprio i campi boolean a dare errore
    al posto del boolean utilizza un campo di tipo smallint: 0 per falso e 1 per vero,
    così dovrebbe risolvere i problemi
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  5. #5
    Oltre ai campi l'errore era nel REsultSet. Nell'Upload non ci vuole al massimo può restituire il numero di recordset cambiati e non stringe.
    Ciao e grazie comunque.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.