Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA] gestione connessione database

    Il mio problemino è questo:

    Mi connetto tramite JAVA ad un database Access, riesco con il comando

    Result.next();

    a scorrere i record ma il comando

    Result.previous();

    mi genera un eccezione. Penso perchè il ResultSet si Forward_only ma
    non riesco ad impostarlo altrimenti, ho provato con

    setFetchDirection(int Direction);

    ma non so cosa mettere come Direction.

    Questo è il codice mi potete aiutare.

    Ciao e grazie

    codice:
    public static void main(String[] args) {
        
        Connessione Connect = new Connessione();    
        Access ist = new Access(Connect);
           
      
        }
    
    Connessione (){ 
    try{ 
    // aggancio il driver  
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    } catch(ClassNotFoundException e){ 
    System.out.println("Driver non trovato"); 
    System.exit(0); 
    } 
    try{ 
    // mi connetto al DB soc tramite il ponte dei driver jdbc:odbc < 
    dbURL = "jdbc:odbc:Ark"; 
    con = DriverManager.getConnection(dbURL); 
    } catch(SQLException sql){ 
    System.out.println("Errore connessione"); System.exit(0); 
    } 
    try { 
    // avviso che sto creando una query, uno statement
    st = con.createStatement();
    } catch(SQLException s){ 
    System.out.println("Errore creazione statement"); 
    } 
    try{ 
    // chiedo di eseguire una select  il cui output venga messo // in una result table 
    rs = st.executeQuery("SELECT * FROM Archivio ORDER BY NOME");
    } catch(SQLException esql){ 
    System.out.println("Errore esecuzione statement"); 
    } 
    
    }
    
    public String Avanti() {  
    try{ 
    // finchè ci sono tuple le prelevo (fetch) 
    rs.next(); 
    return rs.getString(1);
    }
    catch(SQLException as){ 
    System.out.println("Errore selzione dati"); 
    return "Errore";
    } 
    }
    
    public String Indietro() {  
    try{ 
    // finchè ci sono tuple le prelevo (fetch) 
    rs.previous(); 
    return rs.getString(1);
    }
    catch(SQLException as){ 
    System.out.println("Errore selzione dati"); 
    return "Errore";
    } 
    }
    
    public void Chiudi() {
    try{ 
    // quando ho finito chiudo prima lo statement 
    // poi la connessione 
    
    st.close(); 
    con.close(); 
    } catch(SQLException ad){ 
    System.out.println("errore chiusura DB"); 
    
    }
    }
    }

  2. #2
    nel creare lo statement, devi definirlo nel modo seguente:
    codice:
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    mandi
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  3. #3

    Re: [JAVA] gestione connessione database

    Originariamente inviato da anatroccolo
    codice:
    public String Avanti() {  
    try{ 
    // finchè ci sono tuple le prelevo (fetch) 
    rs.next(); 
    return rs.getString(1);
    }
    catch(SQLException as){ 
    System.out.println("Errore selzione dati"); 
    return "Errore";
    } 
    }
    OK funziona.... ma ancora una cosa se possibile.

    con questa funzione passo il contenuto della prima colonna del
    database (una stringa) ad una Textbox.
    Ma se volessi passare i dati di ulteriori colonne ad altre textbox come potrei fare???

    Grazie ancora.

  4. #4
    bo, non so, te li puoi salvare in un array di stringhe e tornare quello
    poi associ ad ogni elemento dell'array il valore nelle textbox
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  5. #5
    Vorresti leggere il contenuto di n colonne senza sapere di che tipo esse siano?

  6. #6
    Originariamente inviato da denis76
    Vorresti leggere il contenuto di n colonne senza sapere di che tipo esse siano?
    Se fossero tutte di tipo String potrebbe andar bene il metodo suggerito da pippo75????

    Nel caso contrario come si potrebbe fare???


  7. #7
    resultset.getObject()
    Il tipo di dato lo trovi nel MetaData. Se vuoi nel pomeriggio ti mando un frammento di codice a proposito.

  8. #8
    Originariamente inviato da denis76
    resultset.getObject()
    Il tipo di dato lo trovi nel MetaData. Se vuoi nel pomeriggio ti mando un frammento di codice a proposito.
    Sicuramente mi potrebbe servire, ti ringrazio molto.

    Ciao

  9. #9
    Dunque:

    Questo metodo ti dice quante colonne ci sono in una tabella,
    resultset.getMetaData().getColumnCount()

    Questo ti dice che tipo di valori contiene una colonna,
    resultset.getMetaData().getColumnTypeName()

    Questo preleva il valore di qualsiasi tipo sia diverso da file binario.
    resultset.getObject()

    Ciao ciao, Denis.

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.