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

    [Java] Connessione a database.

    E' possibile aprire un file .mdb senza configurare un alias in JDBC-ODBC ma puntanto direttamente al file?

    Grazie mille.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Io ho utilizzato questa stringa di connessione per Access e ha sempre funzionato:
    codice:
    Class.forName("com.mysql.jdbc.Driver");
    String qsdb = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=c:/path/db.mdb";
    Connection db = DriverManager.getConnection(qsdb);
    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

  3. #3
    scusate la domanda ma una volta creata una connessione di questo tipo, posso utilizzare i recordset come ad esempio si utilizzano in asp? o la sintassi è diversa?

    grazie
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non so come si utilizzino in ASP i RecordSet, comunque il package java.sql mette a disposizione l'interfaccia ResultSet.
    Attraverso i metodi forniti da questa interfaccia è possibile scorrere i dati risultanti da una query. Esempio:
    codice:
    ...// Creo la connessione col DB in un oggetto chiamato db
    
    // Creo un oggetto Statement per eseguire le query:
    Statement stmt = db.createStatement();
    
    // Eseguo la query e la memorizzo in un ResultSet
    ResultSet rs = stmt.executeQuery("SELECT campo FROM tabella");
    
    // Scorro il ResultSet e stampo i risultati
    while ( rs.next() ) {
       System.out.println( rs.getString(1) );
    }
    
    // Chiudo tutto
    rs.close();     // chiudo il ResultSet
    stmt.close();   // chiudo lo Statement
    db.close();     // chiudo la connessione
    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
    Ottengo l'errore

    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    java.sql.SQLException: No suitable driver

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Perchè ho preso del codice di connessione con MySQL senza modificare la stringa...
    Modifica la prima riga così:
    codice:
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    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

  7. #7
    Sai mica qual è il comando sql per avere l'elenco delle tabelle contenute in un database?

    Grazie mille.

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Beh... credo che dipenda dal DMBS. Per MySQL esiste il comando show tables, ma, appunto, è un comando del dbms, non un'istruzione SQL. Non credo che SQL abbia una simile istruzione, dato che chi usa un DB deve conoscerne a priori lo schema...


    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

  9. #9
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; in java si dovrebbe fare una cosa del tipo:

    Codice PHP:
    import java.net.URL;
    import java.sql.*;

    class 
    JDBCapp  {
      static 
    myConnection theConn;

      public static 
    void main (String args[]) {
        new 
    JDBCapp().doit();
        } 
        
      public 
    void doit() {
        
    theConn = new myConnection();
        
    theConn.Connect2Db("myDSN""user""password");
        try {
         
    ResultSet rs1;
         
    ResultSet rs2;
         
    String sstblnames "";
         
    DatabaseMetaData dmd theConn.dbConn.getMetaData();
         
    rs1 dmd.getSchemas();
         while(
    rs1.next()) {
           
    ss rs1.getString(1);
           
    rs2 dmd.getTables(null,ss"%",null);
           while(
    rs2.next()) 
              
    tblnames += rs2.getString(3) + " " rs2.getString(4) + "\n\r";
           }
         
    System.out.println("Tables :");     
         
    System.out.println(tblnames);
         }
        catch (
    Exception e) { e.printStackTrace(); }
       }
      }

    class 
    myConnection {
      
    Connection dbConn null;
      
    void Connect2Db(String dbString userString passw) {
        try {
          
    Driver d 
            (
    Driver)Class.forName
              
    ("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
          
    // URL corresponding to the ODBC DSN
          
    String URL "jdbc:odbc:" db;
          
    // DB logon
          
    dbConn =
             
    DriverManager.getConnection(URLuserpassw); 
          }
        catch (
    Exception e) {
          
    e.printStackTrace();
          }
        }

      
    void Disconnect2Db() {
        try { 
          
    dbConn.close(); 
          }
        catch (
    Exception e) {
          
    e.printStackTrace();
          }
        }
      } 





    non l'ho provato ma dovrebbe andare; in sql mi sa che LeleFt ha ragione. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  10. #10
    Sì, la funziona va. Ora devo capire come riuscire a sapere quali sono le tabelle contenute in un archivio mdb e come sono fatte.

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