dBASE-Daten in MySQL
Jan Kirchmeyer
- datenbank
Hallo,
ich habe folgendes Problem:
Ich möchte eine große dBASE-Tabelle (1,2MB) in ein MYSQL-Format bringen. Nun hab ich mich hier im Forum erkundigt, wie andere das gemacht haben. Da wurde geraten, die dBASE-Tabelle zuerst in ACCESS zu laden und dann zu exportieren. Nun kann ich nicht mal die dBASE-Datei in ACCESS laden, da sie zu groß ist (laut ACCESS-Fehlermeldung).
Kann mir trotzdem jemand helfen (vielleicht mit EXCEL).
Ich möchte nämlich mittels PHP später Abfragen auf die Tabelle realiseren und aus diesem Grunde sollen die dBASE-Daten im MySQL-Format vorliegen.
Ich hoffe, jemand hat ne Lösung für mich!
Oder gibts vielleicht ne andre Möglichkeit?
Die Abfragen sollten aber schon mit SQL realisiert werden können, weil ich mich nun schon in SQL reingefuxt habe.
Viele Grüße Jan
Hi!
1,2 MB sollten für Access kein Problem sein.
Hast Du die Daten importiert oder verknüpft?
Vielleicht hasst Du beim Import auch den falschen
DB-Treiber angegeben.
Liebe Grüße
fredy
Hallo,
ich habe folgendes Problem:
Ich möchte eine große dBASE-Tabelle (1,2MB) in ein MYSQL-Format bringen. Nun hab ich mich hier im Forum erkundigt, wie andere das gemacht haben. Da wurde geraten, die dBASE-Tabelle zuerst in ACCESS zu laden und dann zu exportieren. Nun kann ich nicht mal die dBASE-Datei in ACCESS laden, da sie zu groß ist (laut ACCESS-Fehlermeldung).
Kann mir trotzdem jemand helfen (vielleicht mit EXCEL).
Ich möchte nämlich mittels PHP später Abfragen auf die Tabelle realiseren und aus diesem Grunde sollen die dBASE-Daten im MySQL-Format vorliegen.
Ich hoffe, jemand hat ne Lösung für mich!
Oder gibts vielleicht ne andre Möglichkeit?
Die Abfragen sollten aber schon mit SQL realisiert werden können, weil ich mich nun schon in SQL reingefuxt habe.
Viele Grüße Jan
hallo,
ich hab also in ACCESS erstmal ne leere datenbank erstellt und dann NEUE TABELLE-->TABELLE IMPORTIEREN-->als dateityp dBASE IV eingestellt und die tabelle gesucht und auf IMPORTIEREN geklickt. dann kam die fehlermeldung "Datensatz zu groß"
vielleicht hilft dir das weiter?
gruß jan
hallo,
ich hab also in ACCESS erstmal ne leere datenbank erstellt und dann NEUE TABELLE-->TABELLE IMPORTIEREN-->als dateityp dBASE IV eingestellt und die tabelle gesucht und auf IMPORTIEREN geklickt. dann kam die fehlermeldung "Datensatz zu groß"
vielleicht hilft dir das weiter?
gruß jan
Hallo Jan,
das könnte auch eine andere Ursache haben. Vielleicht ist Deine "dBase-Tabelle" eine Clipper-Base-Tabelle. In Clipper gab es nämlich Big-Strings mit 2040 Zeichen maximaler Länge. Und die würden natürlich in Access nicht reinpassen.
Tom
Hallo,
Ich möchte eine große dBASE-Tabelle (1,2MB) in ein MYSQL-Format bringen. Nun hab ich mich hier im Forum erkundigt, wie andere das gemacht haben. Da wurde geraten, die dBASE-Tabelle zuerst in ACCESS zu laden und dann zu exportieren. Nun kann ich nicht mal die dBASE-Datei in ACCESS laden, da sie zu groß ist (laut ACCESS-Fehlermeldung).
Hmm, eigentlich hat afaik Access kein Problem, größere Datenbestände zu importieren.
Aber was solls. PHP besitzt ja eine rudimentäre Dbase-Schnittstelle (http://www.php.net/manual/de/ref.dbase.php), mit der Du zumindest einen Datenexport in eine CSV-Datei zustande bringen könntest. Diese Daten kannst DU dann in die mySQL-Datenbank importieren. Oder aber Du schreibst Dein PHP-Script so, daß es dies gleich für Dich erledigt.
Grüße
Klaus
hallo,
erstmal danke für deinen tipp.
hab grad mal auf der seite nachgeschaut (link) aber da steht leider nix davon, wie man eine dBASE-datei in ein csv-Format bringt, so wie du mir das empfohlen hattest. kannst du mir das nicht mal genau u ausführlicher beschreiben?
vielen dank und gruß jan
Moin Jan,
zunächstmal sind folgemde Überlegungen anzustellen:
Es gibt - weiß nicht wo - ein Tool namens dbg2mysql. Dafür mußt Du aber die dbf-Datei im o.g. Sinne bearbeiten. Also Datum nach dtos usw.
Ich selbst mache mir je nach Struktur der Datei mein Übersetzungs'progämmli' selber.
Gruß von der Ostsee
Hanjo
Hallo Hanjo,
gut dass Du darauf hinweist: Inkompatible Datentypen.
Das einzige Problem, dass Du haben kannst, sind Memo-Felder. Memos werden in einer separaten Tabelle abgespeichert. In der Stammtabelle steht dann nur der Einsprungspunkt in Byte in die Blockstruktur der Memo-Tabelle.
Memo-Datensätze zu übernehmen ist ohne Hochsprache schwierig, ließe sich aber in PHP zur Not aber auch realisieren.
Grüße
Tom
Hallo Jan,
dBase habe ich bis zur ...(darf man nicht sagen) benutzt und auch Tools in Pascal und C für Konvertierungen geschrieben.
Ich würde Dir vorschlagen, am dBase-Prompt die Befehle
Use AlteTabelle
copy to NeueTabelle.txt sdf [delimited with "'"]
Use
zu benutzen.
dann schaust Du Dir mal an, wie groß neue Tabelle geworden ist. Und mit einem vernünftigen Ascii-Editor (z.B. den aus der Turbo7-IDE oder Textpad) kannst Du dann auch reinschauen in die Tabelle.
Diese Tabelle solltest Du dann direkt in MySQL übernehmen können. dazu braucht man keine von M$ requirierten Programme.
Für den Zugriff auf MySQL empfehle ich MySQL-Front.
Turbo7: http://bitworks.de/programme/turbo7
Textpad: http://bitworks.de/programme/editoren
MySQL-Front: http://bitworks.de/programme/MySQL-Clients
Viele Grüße aus http://www.braunschweig.de
Tom