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

    Problema connessione db access

    ho scritto questo metodo qua per connettermi a un file access:
    codice:
        private String getCharComune() {
            String db = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + directory();
            String sql = "SELECT CF FROM Comuni WHERE Comune='" + comune + "'";
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
                Connection conn = DriverManager.getConnection(db, "", "");
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(sql);
                if (rs.next()) {
                    db = rs.getString(1);
                } else {
                    db = "";
                }
                rs.close();
                stmt.close();
                conn.close();
            } catch (Exception e) {
                System.out.println(e);
            }
            return db;
        }
    funziona solo windows.
    su mac e linux no.

    directory() è un metodo che mi ritorna il percorso del file a seconda di che os uso:
    codice:
        public static String directory() {
            String path = new String();
            String os = System.getProperty("os.name");
            if (os.equals("Linux")) {
                path = "/media/MATTE/Utility/Comuni.mdb";
            } else if (os.equals("Mac OS") || os.equals("Mac OS X")) {
                path = "/Volumes/MATTE/Utility/Comuni.mdb";
            } else if (os.equals("Windows Vista") || os.equals("Windows 7") || os.equals("Windows XP")) {
                path = "E:\\Utility\\Comuni.mdb";
            }
            return path;
        }
    l'ho usato anche in altri progetti e nn ho mai avuto problemi.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa la mia domanda (forse stupida): si presenta qualche exception? se si posti lo stacktrace?
    Altrimenti mi viene solo da pensare che vai a specificare path file o stringhe di controllo male

  3. #3
    Originariamente inviato da valia
    scusa la mia domanda (forse stupida): si presenta qualche exception? se si posti lo stacktrace?
    Altrimenti mi viene solo da pensare che vai a specificare path file o stringhe di controllo male
    hai ragione scusa, l'ho dato per scontato.
    questo tutto ciò che mi dice:
    codice:
    java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
    dall'errore si capisce il problema solo che nn capisco perchè si presenta solo su sistemi non windows.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    domanda (forse di nuovo stupida): hai le librerie su linux e/o mac?

  5. #5
    Originariamente inviato da valia
    domanda (forse di nuovo stupida): hai le librerie su linux e/o mac?
    mettiamola così: ho visto vari esempi in giro (alcuni dei quali erano fatti su ubuntu) e nessuno diceva di dover installare librerie aggiuntive (in uno addirittura era specificato che nn dovevo aggiungere nulla).
    ho cmq guardato tra le librerie che ci sono di default in netbeans e nn c'è nulla al riguardo e mi sono fidato.
    evidentemente ho fatto male.
    quindi devo scaricare quali librerie??

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    direi, anche in considerazione del fatto che la tua applicazione deve funzionare SENZA netbeans (quindi il fatto che netbeans le abbia per me lascia il tempo che trova)

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Domanda: non ti è sorto il dubbio che essendo Access un'applicazione Microsoft, i sistemi operativi non-Microsoft non hanno le librerie per Access installate di default (come avviene su Windows)?

    Quello che fa quel codice è creare un ponte JDBC (cross-platform) verso un driver ODBC (tecnologia creata e sviluppata da Microsoft, oramai standard de-facto) per Microsoft Access (tecnologia proprietaria di Microsoft). Se il sistema operativo non ha i deriver JDBC per Access (cosa che Windows ha di default) quell'applicazione non funzionerà. E non ci si può aspettare che Linux o Mac abbiano pre-installati di default i driver ODBC per un prodotto Microsoft... sarebbe come entrare in una chiesa cattolica e chiedere di parlare con un Ayatollah...


    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
    si il dubbio mi era sorto.
    colpa mia che mi sono fidato di guide online senza controllare.
    allora faccio il tutto e riprovo.
    grazie!

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.