# MS-Access mit JAva auslesen



## rwolf (6. Sep 2012)

hi all,

also ich hab schon einiges probiert, bevor ich hier poste :

Wenn ich unter Windows7 mittels java , jdbcdbc:... sätze auslese, stimmen die umlaute nicht,
es kommt meist '?'

versucht mit properties  : 

```
//- fuer ODBC -MS-Access
            Properties p = new Properties();
            p.put("uid", kw);
            p.put("pwd", pw);
            p.put("charSet", "UTF8");
        
        url = url.toUpperCase();
        if(url.contains("ODBC"))
        {
            url = "JDBC:ODBC:";
            url += "Driver={Microsoft Access Driver (*.mdb)}; DBQ=";
            url += dbname+".mdb;";
            url += "uid=admin;pwd=;";
        }    
        else 
        {    
            url += dbname;
            //url += ";SET NAMES 'utf8';";
            //url += "?useUnicode=true&characterEncoding=utf8";
        }
        System.out.println("tff get_conn_by_owndb_infos URL : "+url+" KW : "+kw+" PW : "+pw);
        
        int step = 0;
        try
        {
            Class.forName(driver); 

            System.out.println("tff get_conn_by_owndb_infos Treiber akzeptiert !");

            step++;

            if(url.contains("ODBC"))
                cn = DriverManager.getConnection(url,p);
            else    
                cn = DriverManager.getConnection(url,kw,pw);
            System.out.println("tff get_conn_by_owndb_infos URL+Login akzeptiert zu "+url);
```

keine Abhilfe; wie ich im web las, geht es heutzutage nicht mehr mit "charSet", "UTF8"

und jetzt ?

habe mit direkt-treibern versucht :
easysoft : mag 'meine' urls garnicht, vendor äußert sich nicht
jstels : mixt nen merkwürdigen db-name dazu, bisher keine rückmeldung von vendor

bleibt wohl nur, die strings durchzusuchen auf einzelne chars..ord..mittels hashmap austauschen..
wo ist nur meine stricknadel hin


----------



## rwolf (6. Sep 2012)

hab mittlerweile festgestellt, daß schon rs.getString(i) nur noch fragezeichen(ASCII 63) statt umlaute bringt,
also kann eine nachträgliche umsetzung mittels Hashmap nix bringen..stöhn


----------



## pro2 (6. Sep 2012)

Kleiner Tipp: Jackcess. 
Java Library for MS Access

Ist eine Access Library für Java. In Java geschrieben und zwar ausschließlich. Macht das Ganze wesentlich einfacher!

Siehe auch: http://www.java-forum.org/datenbankprogrammierung/128978-access-datenbank-linux-umgebung.html


----------



## rwolf (7. Sep 2012)

danke für antwort !
leider ist jackcess nicht so toll dokumentiert, scheitere schon am import :

```
ackage jackcesstest;

import java.io.*;
import java.sql.*;
import com.healthmarketscience.jackcess.*;

public class JackcessTest {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        System.out.println(Database.open(new File(""C:\\FaKistermy\\MOON\\moondata.mdb"")).getTable("Eilpost").display());
    }
}
```

habe die jar bei Netbeans eingebunden
aber es wird wohl noch mehr jars in der lib gebraucht ?

gruss
wolf


----------



## Michael... (7. Sep 2012)

rwolf hat gesagt.:


> hab mittlerweile festgestellt, daß schon rs.getString(i) nur noch fragezeichen(ASCII 63) statt umlaute bringt,
> also kann eine nachträgliche umsetzung mittels Hashmap nix bringen..stöhn


Welche Inhalte stehen in der Access ( von einer  DB will ich hier gar nicht sprechen ;-) ) liegt wohl hieran:
Bug ID: 6345277 JDBC-ODBC Bridge still does not support Unicode UTF-16


----------



## rwolf (7. Sep 2012)

habe jetzt noch die folgenden jars dazugebunden :
commons-logging-1.1.1.jar
commons_lang.jar
jcommon-1.0.15.jar

und es funzt, sogar mit korrekten umlauten !

recht schönen dank für den tip !


----------



## pro2 (7. Sep 2012)

rwolf hat gesagt.:


> habe jetzt noch die folgenden jars dazugebunden :
> commons-logging-1.1.1.jar
> commons_lang.jar
> jcommon-1.0.15.jar
> ...



Ah ja. Das hätte ich wohl direkt erwähnen sollen.
Man wundert sich immer, warum es nicht funktioniert. Ist nicht so toll ersichtlich, dass man auch noch ein paar andere Librarys dafür braucht.
Wenn es jetzt aber geht, ist ja alles gut.


----------



## maki (7. Sep 2012)

Steht aber sogar in der FAQ von jackcess 

Frequently Asked Questions


----------

