Visualizzazione dei risultati da 1 a 2 su 2

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di tarzan76
    Registrato dal
    Nov 2007
    residenza
    Castellammare del Golfo
    Messaggi
    33

    SQLite non accetta il carattere ' e lancia eccezione

    Ciao a tutti, ho visto che la query inviata a SQLite non accetta il carattere apice '
    e mi lancia l'eccezione
    java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (unrecognized token: "''') ")
    però all'inizio del metodo esiste la clausola throws SQLException che dovrebbe bloccare questa segnalazione. Ho provato a mettere
    codice:
    if(entra!="'"){
    ResultSet rs1 = stat.executeQuery("select * from frasi,sigle WHERE cod=num AND sig=('"+entra+"') ");
    }
    ma poi rs1 non viene riconosciuto nel resto del codice e comunque ottengo l'errore. Copio il codice:

    codice:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class Database4 {
    
        /**Metodo che interroga il database **/    
        public static  String interrogo_database (String entraDb)throws ClassNotFoundException, SQLException
        {    
            String entra = new String(entraDb);
            String ritorno = new String();
    
            Class.forName("org.sqlite.JDBC");  //carico il driver
            Connection conn = DriverManager.getConnection("jdbc:sqlite:testxxx1.db"); //dico di usare jdbc : sqlite e percorso del database
            Statement stat = conn.createStatement();  //creo uno Statement
    
            ResultSet rs1 = stat.executeQuery("select * from frasi,sigle WHERE cod=num AND sig=('"+entra+"') ");
    
            try {
                ritorno= rs1.getString("frase");
            } catch (Exception e) {
                System.out.println(" -Non presente-");
            }
    
            /**Stampo la frase presa dal database*/         
            System.out.println("Frase dal database: " +ritorno);
    
            rs1.close(); //chiudo rs
            conn.close(); //chiudo la connessione
            return entra;
        }
    }
    Potete darmi una possibile soluzione? Grazie

  2. #2
    nessun comando sql accetta l'apice, perché è un delimitatore. Rimpiazzalo con due apici

    esempio

    INSERT INTO Tabella (Citta) VALUES ('L'Aquila')

    deve diventare

    INSERT INTO Tabella (Citta) VALUES ('L''Aquila')

Tag per questa discussione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.