Autor Beitrag
N8Falter74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53

Win XP
D7 Prof
BeitragVerfasst: Do 15.09.05 09:32 
Hallo Forum

ich habe hier einen MySQL Server mit einer Datenbank. Nun möchte ich einzelne Tabellen exportieren um diese mit einer einfachen DB Engine auf eine CD zu brennen.

Die entsprechende DB Engine hab ich schon, ich muß jetzt nur noch die Daten aus der MySQL DB in die andere DB Engine kopieren. Mein Problem ist nun, dass die zu exportierenden Tabellen zwar grundsätzlich gleich aufgebaut sind, jedoch
können die einzelnen Tabellen auch noch zusätzliche Felder enthalten.

Ich hab jetzt einfach versucht das eine Dataset in das zweite zu kopieren:
ausblenden Delphi-Quelltext
1:
DataSource1.DataSet := DataSource2.DataSet;					


Wie ich mir schon gedacht habe :roll: geht das leider nicht so einfach - schade :(

Ich hab schonmal hier im Forum gesucht, aber leider nichts gefunden, was zu meinem Problem passt.
Hat jemand eine Idee, wie ich sowas anstellen könnte?

Sebastian

Moderiert von user profile iconKlabautermann: Code- durch Delphi-Tags ersetzt
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 20.09.05 15:21 
Hallo,

wenn du kein datenbankkonvertierungstool findest, dann must du jede einzelne Tabelle Datensatz für datensatz durchgehen und die jeweiligen feldwerte übernehmen.

ich hatte hier einem anderen schon mal auf dieses Thema geantwortet:
www.delphi-forum.de/...+kopieren_47853.html

MfG
Ralph
N8Falter74 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53

Win XP
D7 Prof
BeitragVerfasst: Di 20.09.05 15:45 
Hallo Ralph,

Parallel zu der Frage hier im Forum habe natürlich auch selbst weiter
nach einer Lösung gesucht. Ich bin dabei auf eine ähnliches Lösung wie
du gekommen. Mein Problem war zusätzlich, dass ich nicht bei allen
Tabellen den genauen Aufbau wissen konnte.

Ich habe das nun so gelöst:
Zuerst schaue ich, welche Felder die Tabelle hat, dann erzeuge ich in
der anderen Datenbank eine Tabelle mit den gleichen Feldern und Typen
und danach kopiere ich die ganzen Werte so wie du das auch hier vor-
geschlagen hast.

Ist allerdings etwas langsam. Ich suche noch nach einer Möglichkeit,
das zu beschleunigen.

Sebastian
Soulama
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72



BeitragVerfasst: Di 20.09.05 16:01 
Hi,
wie wäre es mit TBachMove?
N8Falter74 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53

Win XP
D7 Prof
BeitragVerfasst: Di 20.09.05 16:14 
Hi Soulama

tja, TBatchMove wäre eine Alternative. Die habe ich aber verworfen, da TBatchMove - soweit wie ich das gesehen habe, nur mit der BDE läuft und die möchte ich nicht verwenden! :(

Ich benutze für den MySQL Server die MyDAC Komponenten von CoreLabs und als 'Serverlose' DB SQLite 3. Sinn und Zweck der ganzen Sache ist, einzelne DB Tabellen, bei Bedarf, auf ein ReadOnly Medium (CD/DVD) zu bringen und mit einer speziellen Anwendung anzuzeigen.

Sebastian
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 20.09.05 16:25 
Hi Sebastian,

wie langsam ist es denn?

Ich habe das auch mal gemacht mit einer Datenbank (30 Tabellen, + Bilder in Blobs und als Datei lokal) von Paradox nach DBISAM und das hat bei ca. pro 1000 Datensätze 2 Minuten oder so gedauert Pentium 4, 2,4 GHz. Ich fand das schnell, zumal es eine Bilddatenbank war...

Vielleicht kann ich ja noch helfen?

mfg
ralph
N8Falter74 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53

Win XP
D7 Prof
BeitragVerfasst: Di 20.09.05 16:33 
Hi Ralph,

hmm, ich finde recht langsam!

Die Abfrage aus der Tabelle vom MySQL Server dauert ca. 300ms (übers Netzwerk)
Das Kopieren der Tabelle dauert dann locker 40 bis 60 sek.
Es handelt sich um knapp 700 Zeilen mit insg. 1,7MB Daten.

Rechner: P3 800MHz 512MB

Vermutlich liegt es aber auch zum Teil an der SQLite Engine (oder daran wie ich die Anwende ;) )
Die gleiche Abfrage aus der SQLite Tabelle braucht ca. 5sek (lokale Festplatte)

Sebastian
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 20.09.05 16:48 
OK,

aber was willst du daran optimieren?! vielleich irgendwas an dem MSSQL-Zeug...?!
Bei meiner Datenbank wird pro Datensatz das Bild in ein Stream (aus paradox db) geladen im MegaPixel-Bereich, dass dann zu einem Thumbnail auf 200px breite verkleinert (im BLOB-Feld in DBISAM DB) und gleichzeitig als Originalbild als Datei lokal gespeichert, damit es später über den Thumbnail (Pfad wird auch gespeichert) aufgerufen werden kann...
Das dauert halt ein bisschen...

mfg
ralph

ps. das gleiche ohne bilder ist jedenfalls von paradox nach DBISAM in wenigen Sekunden pro 1000 Datensätze erledigt!