DBF2MySQL
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: DBF2MySQL
Frage : "womit" willst du die DBF Daten ( OEM / ANSI ? ) importieren ?DSE hat geschrieben:will gerne meine DBFs auf MySQL importieren.
Gibt es bereits eine Funktion hierfür oder könnt ihr mir sagen worauf ich achten muß?
angenommen du hast "nur" die DBF und den SQL-Server installiert :
1.) SQL "Console" auf dem Server öffnen
2.) Tabelle "definieren" ( Fields )
3.) DBF nach CSV "exportieren"
4.) "COPY "+myTable+" FROM "+myData.CSV
zum "importieren"
wenn du mit SQLexpres++ oder mit der "native" Schnittstelle arbeitest :
1.) "CREATE TABLE ..."
2.) "INSERT INTO " + MyTable + " VALUES(" ...
für jeden Record ausführen
zu beachten :
OEM DBF, also die mit NTX Index, sollten wegen "Umlaute" nach ANSI konvertiert werden.
entsprechen sollte IMHO die SQL Tabelle mit WIN1252 ( SQL_ANSI ) arbeiten.
SET CHARSET TO sollte man gleich auf ANSI setzten
gruss by OHR
Jimmy
Jimmy
Re: DBF2MySQL
habe versucht eine Test-DBF structur in MySQL zu erzeugen bekomme folgende Fehlermeldung:
SQLState: 42000, ErrorCode:1064
[MySQL][ODBC 5.2(a) Driver][mysqld-5.6.10-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ENGINE=MyISAM' at line 1
Thread ID 1
Called from SQLSTATEMENT:EXECUTE(504)
Called from MAIN(100)
SQLString: CREATE TABLE IF NOT EXISTS `ARTIKEL` (`LAND` varchar(20),`LAGERORT` varchar(3),`GENDER` varchar(15),`AGRUPPE` varchar(20),`ARTKURZ` varchar(20),`ARTBEZ` varchar(50),`BARCODE` varchar(20),`MET` varchar(10)) ENGINE=MyISAM;
SQLState: 42000, ErrorCode:1064
[MySQL][ODBC 5.2(a) Driver][mysqld-5.6.10-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ENGINE=MyISAM' at line 1
Thread ID 1
Called from SQLSTATEMENT:EXECUTE(504)
Called from MAIN(100)
SQLString: CREATE TABLE IF NOT EXISTS `ARTIKEL` (`LAND` varchar(20),`LAGERORT` varchar(3),`GENDER` varchar(15),`AGRUPPE` varchar(20),`ARTKURZ` varchar(20),`ARTBEZ` varchar(50),`BARCODE` varchar(20),`MET` varchar(10)) ENGINE=MyISAM;
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DBF2MySQL
Am besten eine Tabelle im Admintool anlegen und dann ein paar Daten eingeben.
Nun ein Backup dieses Schemas (Datenbank) erstellen (=> Text mit allen Befehlen und Daten), dort findest du den nötigen SQL Code.
Nun ein Backup dieses Schemas (Datenbank) erstellen (=> Text mit allen Befehlen und Daten), dort findest du den nötigen SQL Code.
Gruß
Hubert
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2830
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: DBF2MySQL
Hallo, DSE -
wen ich Probleme mit einer SQL-Anweisung habe, kopiere ich sie in die Zwischenablage und führe sie in der MySQL Konsole aus.
Was mir so auffällt, sind die vielen Anführungsstriche. Die brauche ich beim CREATE TABLE eigentlich nicht. Die Fehlermeldung besagt, dass die ENGINE=MyISAM das aktuelle Problem darstellt.
wen ich Probleme mit einer SQL-Anweisung habe, kopiere ich sie in die Zwischenablage und führe sie in der MySQL Konsole aus.
Was mir so auffällt, sind die vielen Anführungsstriche. Die brauche ich beim CREATE TABLE eigentlich nicht. Die Fehlermeldung besagt, dass die ENGINE=MyISAM das aktuelle Problem darstellt.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Re: DBF2MySQL
Dank euch!!!
Mit SQL-Editor habe ich das Problem endeckt falsche Hochkommas
Viele Grüße
Ayhan
Mit SQL-Editor habe ich das Problem endeckt falsche Hochkommas
Viele Grüße
Ayhan
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DBF2MySQL
Die satzweise übertragung mit SQLexpress ist übrigens sehr langsam (zumindest bei DBFs > 1000 Recs), den Import mit CSV Datei an der Console kenne ich nicht,
aber eine oben erwähnte "Backup" Datei kann man leicht mit Xbase++ direkt erzeugen und einlesen, das geht viel schneller
aber eine oben erwähnte "Backup" Datei kann man leicht mit Xbase++ direkt erzeugen und einlesen, das geht viel schneller
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: DBF2MySQL
bei vielen "INSERT ..." sollte man, bei PostgreSQL, "autocommit" so lange abschalten ... "das" braucht so "lange"brandelh hat geschrieben:Die satzweise übertragung mit SQLexpress ist übrigens sehr langsam (zumindest bei DBFs > 1000 Recs),
hm ... gibt es unter MySQL keinbrandelh hat geschrieben:den Import mit CSV Datei an der Console kenne ich nicht,
Code: Alles auswählen
COPY Table FROM STDIN
das ist natürlich noch besser weil du da die "Structure" der Table ja schon hast und die Daten dann auch ( vom Type ) "passen".brandelh hat geschrieben:aber eine oben erwähnte "Backup" Datei kann man leicht mit Xbase++ direkt erzeugen und einlesen, das geht viel schneller
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2830
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: DBF2MySQL
Hallo,
um eine Tabelle oder Datenbank von einem SQL-Server auf den anderen zu transportieren, verwendet man bei MySQL mysqldump und mysql:
-u (username)
-p (prompt für Passwort)
-h (wenn der Server nicht auf dem gleichen Rechner läuft)
meinedatenbank (Name der Datenbank)
.tabelle (wenn eine einzelne Tabelle gedumpt werden soll)
Wenn man sich ansieht, wie mysqldump die Daten einer Tabelle ablegt, kann man analog dazu seine Daten in eine Textdatei schreiben, die dann etwa so aussieht:
Anmerkung: mysqldump erzeugt keine "use meinedatenbank" Anweisung, die muss manuell nachgepflegt werden, sonst läuft's nicht.
um eine Tabelle oder Datenbank von einem SQL-Server auf den anderen zu transportieren, verwendet man bei MySQL mysqldump und mysql:
Code: Alles auswählen
mysqldump -u root -p -h 192.168.1.1 meinedatenbank.tabelle > meindump.sql
-p (prompt für Passwort)
-h (wenn der Server nicht auf dem gleichen Rechner läuft)
meinedatenbank (Name der Datenbank)
.tabelle (wenn eine einzelne Tabelle gedumpt werden soll)
Code: Alles auswählen
mysql -u root -p -h 192.168.1.2 < meindump.sql
Code: Alles auswählen
use meinedatenbank;
insert into tabelle values(...);
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.