# Access Datenbank !



## manuela (10. Mai 2008)

Hallo, ich kann java nicht ganz folgen.

Hier mein problem


```
try { 
            
             Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); 
             String Filename = "F:\\Prog\\Datenb\\KHerst.mdb"; 
             String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="; 
             database += Filename.trim() + ";DriverID=22;READONLY=false}";      
             Connection con = DriverManager.getConnection(database, "", ""); 
             System.out.println("Verbindung aufgebaut"); 
             
             Statement st = con.createStatement(); 
             String sSQL = "Select * from Kher where _nummer="+ jTextField1.getText();
             ResultSet rst = st.executeQuery(sSQL);
             
             while(rst.next()) 
              { 
                String an = new String();
                an = rst.getString("REF").substring(0, 1);
                System.out.println(rst.getString("NAME")+"  "+"  an="+an);    
                System.out.println(rst.getString("VORNAME")+"  "+"  an="+an);    // Bis hierhin
                //liest er ein und die Daten werden auch angezeigt.

            
                 System.out.println(rst.getString("NAME")+"  "+"  an="+an);   //  Im_dat.java:121  hier wird eine SQLException geworfen
             
           
             } 

             
             
             con.close(); 
             System.out.println("Verbindung geschlossen"); 
        } catch(SQLException sqlex) { 
           sqlex.printStackTrace(); 
         }
```

die Exception


```
java.sql.SQLException: No data found
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7138)
        at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)
        at ett.Datrt.Im_dat.jButton1ActionPerformed(Im_dat.java:121)
```

das verstehe ich nicht???
wo ist da die logik.

Gruß Manuela


----------



## maki (10. Mai 2008)

Du sollst doch die JDBC/ODBC Krücke nicht verwenden, und Access schon gar nicht.


----------



## Manuela (10. Mai 2008)

Ich weiß das access scheiße ist aber ich benutze Access nur als Container für DBase Datenbank
um unsere alten Daten zu retten.

Gruß Manuela


----------



## maki (10. Mai 2008)

Das ist kein Java Problem, die JDBC/ODBC Brücke ist nicht für den Produktivbetrieb gedacht, Access ist keine echte DB, etc. pp.

Wenn du nur die Daten retten willst, hast du es relativ einfach, einfach auslesen und in eine richtige DB importieren.


----------



## Guest (13. Mai 2008)

Aus der Resutset API:

"... For maximum portability, result set columns within each row should be read in left-to-right order, and each column should be read only once."

Du versuchst eine Spalte zwei mal zu lesen und das mag der JDBC-ODBC Treiber nicht.

Franco


----------



## lhein (14. Mai 2008)

korrekt. Die Spalte NAME wird doppelt gelesen, was imho zu einer Exception führt.
Puffere den Namen in einem String und dann hat sich das Thema.

lhe


----------

