Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: problemi con query SQL

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15

    problemi con query SQL

    Salve a tutti, sono ormai diversi giorni che sono inchiodato su un problema e non riesco a venirne fuori. Ecco il codice:
    codice:
    public String[][] compArray(){
            int l = 0;
            this.temp = new String[10][2];
            try {
                Class.forName("org.hsqldb.jdbcDriver");
                Connection connection = DriverManager.getConnection( "jdbc:hsqldb:test[path]/Ordine/test","SA","");
                //interrogo db
                Statement smt = connection.createStatement();
                ResultSet rs = smt.executeQuery(query);
                while(rs.next() == true){
                    String a = rs.getString("GRUPPO");
                    Integer b = rs.getInt("ORDER");
                    a = temp[l][0];
                    temp[l][1] = String.valueOf(b);
                    l++;            
                }
                connection.close();
                smt.close();
                rs.close();            
            }
            catch(ClassNotFoundException e){
                JOptionPane.showMessageDialog(null, "Database non connesso! (Class)");
            }
            catch(SQLException e){
                JOptionPane.showMessageDialog(null, "Database non connesso (SQL)");
            }
            return temp;
        }
    E la query:
    codice:
    private String query = "SELECT GRUPPO, ORDER FROM GRUPPI";
    Solo che nel momento che vado a eseguirlo mi da errore!
    specifico che nel db ho già inserito la tabella:
    codice:
    CREATE MEMORY TABLE GRUPPI(ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY, GRUPPO VARCHAR(40), ORDER INTEGER NOT NULL)
    Grazie!

  2. #2
    E certo la tua query è inesatta
    private String query = "SELECT GRUPPO, ORDER FROM GRUPPI";

    ORDER credo che sia una parole riservata di SQL.

    Prova a modificare Order con Ordine e rifare il giro.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    E certo la tua query è inesatta
    private String query = "SELECT GRUPPO, ORDER FROM GRUPPI";

    ORDER credo che sia una parole riservata di SQL.

    Prova a modificare Order con Ordine e rifare il giro.

    Ciao.
    Ho provato a fare come mi hai detto, ma non è cambiato nulla!

  4. #4
    Cattura l'eccezione e posta qui il printstacktrace altrimenti non posso aiutarti.
    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15
    mi da "java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: GRUPPI"

  6. #6
    Questo è un errore di SQL, non hai i privilegi per poter leggere dal DB oppure non trova la tabella, problemi che esulano da java.
    Onestamente su quest'ambito non so come aiutarti, magari qualche collega può darti una mano.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Mai usato HSQLDB in vita mia, ma leggendo qua e là sembra che quell'eccezione venga sollevata se si tenta di accedere ad un campo di una tabella che non esiste... come se nella tua tabella non ci fosse il campo "GRUPPI".

    Quindi, ricontrolla la query di creazione della tabella, verifica che la tabella abbia esattamente quei campi (e, sì: ORDER è una parola riservata di SQL che serve a imporre un ordinamento sui dati, quindi NON va usata come nome di campo in nessuna tabella di nessun DBMS) e ricontrolla anche le istruzioni di recupero dei valori dal ResultSet: quel rs.getInt("ORDER"), ad esempio.

    Se incorri di nuovo nel problema, posta qui tutto: dalla query di creazione tabella, alla query di selezione, allo stackTrace completo dell'eccezione:

    codice:
    try {
       ... // istruzioni
    } catch (Exception e) {
       e.printStackTrace();
    } finally {
       ...
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15
    Grazie, per il momento sembra che sono riuscito a risolvere la cosa, l'unico dubbio che ho � questo: perch� quando vado ad aprire il file .script del database dove vanno tutte le info, perch� non mi compaiono le voci di quello che ho inserito?

  9. #9
    devi controllare se nella tua jvm è settato l'autocommit.
    Di default è così, ma potresti inavvertitamente averlo disattivato...
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15
    E dove la trovo questa impostazione?

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.