Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93

    JDBC con Microsoft Access

    Ciao a tutti, ho un'applicazione Java che accede con JDBC ad un database Access. Le mie domande sono due :

    1. Riesco ad effettuare l'accesso solo se definisco un DNS. Se provo a mettere la stringa di connessione DRIVER={Microsoft Access Driver (* .mdb)};DBQ=C:\\database.mdb non procede tutto come dovrebbe. Come mai ?

    2. Ho letto su internet che utilizzando il driver JDBC-ODBC Bridge, posso leggere una colonna solo ed esclusivamente una sola volta. se provo la seconda volta, chiama un errore No data Found. Come mai ?

    Grazie mille.

  2. #2
    Questa classe a me funziona... provala.

    ciao


    codice:
    public class Connessione{
        
        private static Connection con; 
        private static Statement st; 
        private static ResultSet rs; 
        private static String filename;
        private static String database;
        
        public static void main(String[] args) {
        
            Connessione Connect = new Connessione();    
        }
    
        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 tramite il ponte dei driver jdbc:odbc
                filename = "d:/Workzone/Ts/Java/Jdbc/Ark.mdb";
                database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + filename;
                con = DriverManager.getConnection(database); 
            }   
            catch(SQLException sql){ 
                System.out.println("Errore connessione");
                System.exit(0); 
            } 
            try { 
                // avviso che sto creando una query, uno statement
                st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
            } 
            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"); 
            } 
        }

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    e per quanto riguarda la lettura della stessa colonna più volte ?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,307
    Salvi il ResultSet in un Vector (o array) leggendolo (una sola volta). Così ti risolvi il problema.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    allora il mio problema specifio è questo : in un campo ho un valore "data ed ora". La classe ResultSet mette a disposizione due metodi distinti getDate() e getTime() e non un unico metodo per leggere tutto il campo (oppure mi sbaglio ?), quindi sono costretto a leggere due volte il campo e poi "concatenare" data ed ora per avere un oggetto Date. La soluzione è utilizzare getString() per leggere tutto il campo, ma concettualmente è errato ! (leggo una data tramite un'operazione di lettura di una stringa).
    Il problema della doppia lettura si verifica solo con MS Access e non con MySQL. Tutto dipende dall'uso del bridge JDBC-ODBC ed il suo limite è documentato dalla Sun. Con il connector per MySQL funziona tutto benissimo. Come posso risolvere ? Grazie mille...

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.