chris: Access Verbindung herstellen

Hallo allerseits!
Ich bins mal wieder. Ich raste langsam aus. Bei mir klappt gar nix. Ich möchte in meinem Servlet eine Datenbankverbindung herstellen. FOlgender Code wird verwendet:

// Verbindung zu einer Datenbank herstellen
    private void connectToDB() {

File dbpath = new File("D:\Daten\CMDB\Service_Test.mdb");

String path = dbpath.toString();

con = null;

Driver datenbanktreiber = new sun.jdbc.odbc.JdbcOdbcDriver();

try {
            DriverManager.registerDriver(datenbanktreiber);

String fullstring =
                "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" +
                path;

con = DriverManager.getConnection(fullstring);
        } catch (SQLException e) {
            /*try {
                    resp.getWriter().write("FEHLERFEHLER");
            } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
            }*/
        }
    }

Ich bekomme beim Ausführen des Servlets aber immer nur folgende Meldung: Error 500: sun/jdbc/odbc/JdbcOdbcDriver

Ich weiß bald echt nicht mehr weiter. Hoffe, mir kann jemand helfen...Danke!

  1. moin chris :)

    Versuchs mal mit dem Code von diesem Servlet-Tutorial:

      
    Connection con = null;  
    try {  
      // Load (and therefore register) the JDBC-ODBC Bridge  
      // Might throw a ClassNotFoundException  
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
      
      // Get a connection to the database  
      // Might throw an SQLException  
      con = DriverManager.getConnection("jdbc:odbc:somedb", "user", "passwd");  
      
      // The rest of the code goes here.  
    }  
    catch (ClassNotFoundException e) {  
      // Handle an error loading the driver  
    }  
    catch (SQLException e) {  
      // Handle an error getting the connection  
    }  
    finally {  
      // Close the Connection to release the database resources immediately.  
      try {  
        if (con != null) con.close();  
      }  
      catch (SQLException ignored) { }  
    }  
    
    

    liebe Grüße aus Berlin
    lina-

    --
    Dinge aus dem linaland
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. moin chris :)

      Versuchs mal mit dem Code von diesem Servlet-Tutorial:

      Connection con = null;
      try {
        // Load (and therefore register) the JDBC-ODBC Bridge
        // Might throw a ClassNotFoundException
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      // Get a connection to the database
        // Might throw an SQLException
        con = DriverManager.getConnection("jdbc:odbc:somedb", "user", "passwd");

      // The rest of the code goes here.
      }
      catch (ClassNotFoundException e) {
        // Handle an error loading the driver
      }
      catch (SQLException e) {
        // Handle an error getting the connection
      }
      finally {
        // Close the Connection to release the database resources immediately.
        try {
          if (con != null) con.close();
        }
        catch (SQLException ignored) { }
      }

      
      >   
      > liebe Grüße aus Berlin  
      > lina-  
        
      Hihi, jetzt haben wir 2 uns aber hier gefunden ;-)  
      Danke, dann werde ich das mal versuchen!
      
      1. moin chris :)

        Versuchs mal mit dem Code von diesem Servlet-Tutorial:

        Connection con = null;
        try {
          // Load (and therefore register) the JDBC-ODBC Bridge
          // Might throw a ClassNotFoundException
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        // Get a connection to the database
          // Might throw an SQLException
          con = DriverManager.getConnection("jdbc:odbc:somedb", "user", "passwd");

        // The rest of the code goes here.
        }
        catch (ClassNotFoundException e) {
          // Handle an error loading the driver
        }
        catch (SQLException e) {
          // Handle an error getting the connection
        }
        finally {
          // Close the Connection to release the database resources immediately.
          try {
            if (con != null) con.close();
          }
          catch (SQLException ignored) { }
        }

        
        > >   
        > > liebe Grüße aus Berlin  
        > > lina-  
        >   
        > Hihi, jetzt haben wir 2 uns aber hier gefunden ;-)  
        > Danke, dann werde ich das mal versuchen!  
          
        Sorry, ich bins nochmal: Also meine DB liegt unter folgendem Pfad: D:\Daten\CMDB\Service\_Test.mdb. Wie/Wo kann/muss ich den Pfad einbinden? Und meine DB ist nicht durch PW und Username geschützt. Spielt das eine ROlle?? Liebe GRüße
        
        1. Hallo Chris,

          Und meine DB ist nicht durch PW und Username geschützt. Spielt das eine ROlle?

          selbstverständlich ist der Zugriff auf Deine DB nur in Verbindung mit einem Benutzernamen möglich. Der Benutzer heißt Administrator, das Passwort des Benutzers ist leer. Das ist der Standardbenutzer, den Access verwendet, wenn es für eine MDB-Datei nicht explizit anders eingerichtet wird. Access verwendet dazu Arbeitsgruppen-Informationsdateien, die typischerweise die Endung mdw tragen. In moderneren Access-Versionen verwaltest Du diese über

          Extras -> Sicherheit -> Arbeitsgruppen-Administrator

          Freundliche Grüße

          Vinzenz

    2. moin lina- :)

      ...
      String fullstring = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" +                path;
      con = DriverManager.getConnection(fullstring , "user", "passwd");

      Beachte bitte Vinzenz, der dir das mit dem Benutzer und Passwort erklärt hat.

      liebe Grüße aus Berlin
      lina-

      --
      Dinge aus dem linaland
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  2. Hallo,

    für DSN-lose Connections zu Access via jdbc:odbc funktioniert bei mir Folgendes:

      
    import java.sql.*;  
      
    class JDBCAccessDemo {  
         public static void main(String[] args){  
            try {  
               Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
               String myDB ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Dokumente und Einstellungen\\Axel\\Eigene Dateien\\db1.mdb";  
               Connection con = DriverManager.getConnection(myDB,"","");  
               Statement stmt = con.createStatement();  
               ResultSet rs = stmt.executeQuery("SELECT * FROM Tabelle1");  
               while (rs.next()) {  
                  System.out.println(rs.getString(1));  
               }  
            } catch(java.lang.ClassNotFoundException cnfe) {  
               cnfe.printStackTrace();  
            } catch(java.sql.SQLException sqle) {  
               sqle.printStackTrace();  
            }  
        }  
    }  
    
    

    Siehe http://www.rgagnon.com/javadetails/java-0345.html und http://www.exampledepot.com/egs/java.sql/LoadDrivers.html.

    viele Grüße

    Axel