.dbf (IV) Datenbank einlesen

Status
Nicht offen für weitere Antworten.

H2SO4

Bekanntes Mitglied
Hallo!

Gibt es eine Möglichkeit eine DBase .dbf vom Typ 4 auszulesen? Ich habe schon ein paar Dinge bei google gefunden, nur leider nicht für IV. StelsDBF JDBC Driver ist definitv das beste, nur ist das leider ein Trail-Version.

Habt ihr ne Lösung?
 

Lennart

Mitglied
Geht es um eine einmalige Migration oder um wiederholte Zugriffe?

Nur lesend oder auch schreibend?

Hast du Memofelder in der dBase-Tabelle?

Beste Grüße
Lennart
 

sparrow

Top Contributor
Ich weiss nicht was genau das für Dateien sind mit denen ich im Moment rum spiele (sind halt das Daten-Backend einer Fremdanwendung), aber da funktioniert es ganz ausgezeichnet indem ich per JDBC-ODBC-Bridge drauf rum spiele.

Gruß
Sparrow
 

H2SO4

Bekanntes Mitglied
Also, der Zugriff soll nur lesend erfolgen, und ja, leider habe ich ein Memo-Feld. Sonst hätte ich bei dem Programm, aus dem ich die Datenbank als Export bekomme, eine Textdatei als Ausgabeformat gewählt. Aber das eine Memo-Feld wird so leider nicht in die Datei geschrieben. Und die einzige andere Möglichkeit ist eine DBase.

Wäre echt cool wenn euch irgendwie was einfallen würde. Ich habe nämlich schon so alles durch was es gibt (ich gefunden habe =)) und nichts funktioniert. Bei diesen Programmen, die die DDase direkt als Datei auslesen, treten immer Fheler auf, wie: Feld konnte nicht konvertiert werden, oder Feld entspricht nicht Standard-Format, etc. Aber da kann ich ja nichts dran ändern.
 

H2SO4

Bekanntes Mitglied
Ich habe es jetzt nochmal mit xBaseJ versucht.
Code:
try {
	DBF dbf = new DBF("rechnung.dbf", DBF.READ_ONLY );
			
} catch (xBaseJException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

Und wie bei allen anderen Lösungen, ein Fehler wie dieser:

org.xBaseJ.xBaseJException: Wrong Version -116
at org.xBaseJ.DBF.openDBF(DBF.java:332)
at org.xBaseJ.DBF.<init>(DBF.java:172)
at controlling.Import.importiereRechnungen(Import.java:656)
at controlling.Import.main(Import.java:668)
 

sparrow

Top Contributor
Falls du unter Windows arbeitest (unter anderen Betriebssystemen habe ich es noch nicht probiert, da ich nur für die Firma auf .dbf-Dateien zugreifen muss), hast du es schon einmal mit der ODBC-Bridge versucht?
Funktioniert hier wunderbar, auch mit Memo-Feldern.
Außerdem kann man dann "richtige" SQL-Kommandos ausführen.

Gruß
Sparrow
 

H2SO4

Bekanntes Mitglied
Ja, habe ich. Nur als die Verbindung stand, konnte ich keine Daten auswählen, da ich den Tabellenname nicht kenne. Das Programm, aus dem ich exportiere, SHM, hat verschiedene Datenbanken. In diesem Fall gehts um die Projekt.db. Dann kann ich die vers. Spalten wählen und das Exportformat -> Rechnung.dbf , Rechnung.dbt. Die Tabelle heißt aber weder Rechung, noch Projekt. Alles ausprobiert.
 

sparrow

Top Contributor
Vielleicht stimmt etwas mit den exportierten Daten nicht.

Ich arbeite hier, just in diesem Moment, an einem Projekt das bei einer älteren DOS-Anwendung direkt auf das Daten-Backend zugreifen soll.
Das ist soweit kein Problem, entsprechend die ODBC-Datenschnittstelle in Windows eingestellt (Systemsteuerung -> Verwaltung -> Datenquellen (ODBC) -> Hinzufügen -> Driver do Microsoft dBase) und entsprechend das Verzeichnis in dem die .dbf liegt bei Directory eingetragen.

Anschließend mit dem JDBC/ODBC-Treiber eine Verbindung zu neuen Datenquelle aufnehmen und es kann entsprechend selektiert werden. Der Tabellenname entspricht dem Dateinamen ohne .dbf. Also Z_TEXT.DBF ist die Tabelle Z_TEXT.

Bitte probier den Weg doch nochmal aus und poste hier die genaue Fehlermeldung.


Danke!

Sparrow
 

H2SO4

Bekanntes Mitglied
Ok, hat mir schonmal ein bisschen weitergeholfen. DNS habe ich angelegt, Verbindung steht, Tabellenname findet er so wie von dir angegeben auch, nur jetzt:

java.sql.SQLException: [Microsoft][ODBC dBASE Driver] Unerwarteter Fehler vom externen Datenbanktreiber (15877).
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at controlling.Import.importiereRechnungen(Import.java:660)
at controlling.Import.main(Import.java:672)

Mit den exportierten Daten muss alles in Ordnung sein, da die von dem Programm so ausgegeben werden. Da habe ich wie gesagt keinen Einfluss drauf und muss sie als gegeben sehen.

Aber wenigstens nen kleinen Schritt weitergekommen...
 

sparrow

Top Contributor
Ah genau, DNS heisst das... bin ich vorhin nicht gleich drauf gekommen.

Ich greife übrigens nur per Spaltennamen auf die Spalten zu (also ResultSet.getObject("Spaltenname"))
Ein Kollege meinte er hatte Schwierigkeiten als er mit Nummern arbeiten wollte.


Gruß
Sparrow

EDIT:
Stimmt nicht!
Aber man kann jedes Feld aus dem ResultSet nur 1x auslesen.

Java:
    private void showTable(String dns, String table) {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            cwscon = DriverManager.getConnection("jdbc:odbc:" + dns);
            PreparedStatement st = cwscon.prepareStatement("SELECT * FROM " + table);
            ResultSet rs = st.executeQuery();
            int rowcount = 0;
            while (rs.next()) {
                rowcount++;
                System.out.println("--- DATENSATZ NR. " + rowcount + "---");
                for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
                    System.out.print(rs.getMetaData().getColumnName(i) + ": ");
                    Object obj = rs.getObject(i);
                    if (obj == null) {
                        System.out.println("NULL");
                    } else {
                        System.out.println(obj);
                    }
                }
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }   
    }
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Bilder in Datenbank speichern - sinnvoll Allgemeine Java-Themen 5
S Kochbuch bzw. Rezepte-Datenbank app mit Swing..? Allgemeine Java-Themen 5
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
B API Token in Datenbank ablegen? Allgemeine Java-Themen 9
S Einzigartigen String in Datenbank finden und löschen Allgemeine Java-Themen 23
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
Meeresgott Kapselung Tabellen der Datenbank erzeugen. Allgemeine Java-Themen 7
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
looparda Unit Test - Abgänigkeit zur Datenbank isolieren Allgemeine Java-Themen 3
T Datentypen MNIST Datenbank auslesen (.gz) Allgemeine Java-Themen 0
O 2 Combobox in Abhängigkeit von der 1 Combobox (Datenbank) Allgemeine Java-Themen 1
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
F OOP Datenbank-Klasse überall verfübar Allgemeine Java-Themen 2
R Test Umgebung für Datenbank erstellen, was braucht es? Allgemeine Java-Themen 14
D OOP Design Pattern für GUI - Datenbank Anwendung Allgemeine Java-Themen 1
T Zugriff auf Datenbank Allgemeine Java-Themen 1
G Datenbank von nöten? Allgemeine Java-Themen 7
3 Backup von h2-Datenbank-Datei erstellen Allgemeine Java-Themen 6
S Java DateTime für Datenbank Allgemeine Java-Themen 4
F Alternative sun.jdbc.odbc.JdbcOdbcDriver (Access Datenbank) Allgemeine Java-Themen 2
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
P MYSQL Datenbank Dump einspielen Allgemeine Java-Themen 1
M SQL Datenbank in JAVA Projekt Allgemeine Java-Themen 3
P iTunes Datenbank manipulieren Allgemeine Java-Themen 2
A Ausführbare Java-Datei aus Projekt und Datenbank Allgemeine Java-Themen 3
T Datenbank oder Filesystem? (E-Learning) Allgemeine Java-Themen 2
N Datei aus Datenbank öffnen mit Standardanwendung Allgemeine Java-Themen 2
J Datenbank und OO-Aufsatz Allgemeine Java-Themen 9
M BufferedReader: Vom Logfile zur Datenbank Allgemeine Java-Themen 6
P Klassen Template-Klasse für Datenbank-Abfragen erstellen Allgemeine Java-Themen 2
E JAVA Alternativen zur Datenbank? Allgemeine Java-Themen 7
Dit_ GeoKoordinaten Datenbank (nicht nur Städte) Allgemeine Java-Themen 6
J Progress Bar während Datenbank Erstellung Allgemeine Java-Themen 2
C Datenbank - Textfiles - Anderes Allgemeine Java-Themen 34
T Datenbank lässt sich un Entwicklungsumgebung öffnen, aus .jar aber nicht Allgemeine Java-Themen 9
G JNDI/LDAP/Datenbank Allgemeine Java-Themen 2
Meldanor Speichern der Datenbank - Lohnen sich mehrere Threads? Allgemeine Java-Themen 2
hdi [Free Download] Film-Datenbank Allgemeine Java-Themen 30
G Excel-Daten in Datenbank speichern - Problem mit leeren Feldern Allgemeine Java-Themen 7
K von List getSelected auf ResultSet Datenbank löschen Allgemeine Java-Themen 2
C Java Polling, Server Prozedur oder doch Datenbank? Allgemeine Java-Themen 4
D Recipes / Codeschnipsel Datenbank für Java? Allgemeine Java-Themen 3
T MySQl Datenbank als Array ausgeben Allgemeine Java-Themen 11
M Rechenweg in Datenbank speichern und nutzen Allgemeine Java-Themen 6
O viele Datensätze aus Datenbank - Java Heap Space - Excepion Allgemeine Java-Themen 25
E Datenbank/iBatis Fehlermeldung Allgemeine Java-Themen 4
G Datenbank zur laufzeit wechseln Allgemeine Java-Themen 11
N ClassLoader - Laden von Bytecode aus einer Datenbank Allgemeine Java-Themen 6
S Speicherung von Daten: Datenbank(sql) oder xml? Allgemeine Java-Themen 9
F Vector in eine Datenbank speichern? Allgemeine Java-Themen 3
A Problem beim Starten der H2-Datenbank Allgemeine Java-Themen 4
S Datenbank Abfragen mit großen Datenmengen Allgemeine Java-Themen 22
G Datenbank-Anwendung schnell erstellen. Allgemeine Java-Themen 7
P Datenbank Tabelle spiegeln Allgemeine Java-Themen 22
E MySQL-Datenbank <-> HashMap/TreeMap Allgemeine Java-Themen 1
P Zugriff auf die DatenBank Allgemeine Java-Themen 44
H Daten aus MySQL datenbank auslesen und in ArrayList stecken Allgemeine Java-Themen 8
P Timestamp in eine Firebird-Datenbank einfügen Allgemeine Java-Themen 6
P Java Acces Datenbank Problem ! (Brauche eine Abfrage) Allgemeine Java-Themen 5
B Datenbank anlegen Allgemeine Java-Themen 10
N Datenbank vs. Filesystem Allgemeine Java-Themen 5
F datenbank oder csv etc Allgemeine Java-Themen 6
V Brauche Beratung in Sachen Java+Datenbank+Web Allgemeine Java-Themen 8
G Ab wann Datenbank verwenden Allgemeine Java-Themen 15
H sichere Datenbank-Verbindung Allgemeine Java-Themen 4
H Datenbank an ein Java Client Server Programm anschliessen Allgemeine Java-Themen 3
F lizenzfreie Datenbank für JAVA-Anwendung Allgemeine Java-Themen 3
S Zeilenausgabe Datenbank Allgemeine Java-Themen 2
S Datenbank Allgemeine Java-Themen 9
G Sichere Passwortübergabe bei Datenbank Allgemeine Java-Themen 14
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
S Java Datenbank auf Festplatte installieren Allgemeine Java-Themen 2
G JComboBox mit Werten aus einer Access Datenbank füllen Allgemeine Java-Themen 18
T Java Application Server + Datenbank von CD Allgemeine Java-Themen 8
G Abfrage in datenbank Allgemeine Java-Themen 5
G Daten aus MySQL-Datenbank an JFreeChart übergeben Allgemeine Java-Themen 3
D Userdaten + Datenbank? Allgemeine Java-Themen 11
G HSQLDB Datenbank-Dateien aus Jar-Datei lesen Allgemeine Java-Themen 5
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
killig Textdatei einlesen und in HashMap speichern (duplikate entfernen) Allgemeine Java-Themen 12
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
Master3000 Java Datei mehrmals einlesen Allgemeine Java-Themen 4
R Sonderzeichen aus Datei einlesen und in Datei ausgeben. Allgemeine Java-Themen 17
M Website Quelltext mit Java einlesen Allgemeine Java-Themen 10
L Datein einlesen. Allgemeine Java-Themen 5
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
F Datei in String-Array einlesen Allgemeine Java-Themen 8
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
H Strategy Pattern - changeColor() Methode - input rgd oder hex einlesen Allgemeine Java-Themen 1
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
Henrithebegiinerofjava Erste Schritte Werte in Eingabefelder einlesen und wiederholen lassen. Allgemeine Java-Themen 3
R .txt Datei einlesen und auf der Konsole ausgeben lassen Allgemeine Java-Themen 11
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
J Input/Output Word Datei einlesen, verarbeiten und abspeichern Allgemeine Java-Themen 3
K RTF-Dokumente einlesen Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben