Datenaustausch zwischen zwei unterschiedlichen ODBC-Quellen
-
Hi, habe eine Frage an die DB-Profis unter Euch:
Ich arbeite mit diesen http://www.codeproject.com/database/caaadoclass1.asp#TheAdoClasses2 ADO-Klassen und bearbeite damit eine MySQL-DB und alles funzt wunderbar.
Nun möchte ich eine *.csv Datei in die Datenbank importieren und wollte auch dafür ADO benutzen.
Mit Hilfe des Microsoft Text Drivers ist es kein Problem ein SELECT * FROM blabla auf eine CSV-Datei zu schicken, aber, und das ist meine Frage, kann man z.B. per INSERT INTO Befehl Daten zwischen zwei unterschiedlichen ODBC-Quellen Daten transferieren?Vielen Dank schonmal!
Gruß T.
-
Indem du 2 Klasseninstanzen hast. Auf die CSV und auf MySQL.
-
Ok, genau das möchte ich auch.
Kann ich denn einen INSERT INTO Befehl auf meine MySQL-DB absetzten innerhalb der ich die CSV-Instanz als Daten-Quelle benutzte? Die beiden Instanzen wissen doch eigentlich nichts "voneinander".
Ich wollte das Ganze gerne mit SQL-Befehlen erledigen, um nicht händisch durch die CSV-Tabelle durchlaufen zu müssen und alle Datensätze einzeln rüberkopieren zu müssen...
Gibt's da einen SQL-Weg oder muß ich die Daten zu Fuß kopieren?Gruß T.
-
Ich habe mal ein Programm geschrieben, das Insertscripte umgebaut hat.
Sowas könntest du doch auch machen. Und das Script kannst du dann direkt auf die Datenbank loslassen. Das wäre eben einfach nur, die Textdatei durchlaufen und in einzelne Inserts umbauen.
Nur mal so als Alternative...
-
Du kannst auch phpmyadmin verwenden. Das Impotiert dir die csv-Datei
-
Ich wollte den Importlauf schon gern in meine Applikation integrieren.
Wahrscheinlich werden ich die CSV-Records in einer while(!adoCsv->IsEOF()) Schleife durchlaufen und alles in die MySQL-DB rüberschaufeln.Trotzdem, thx für Eure Vorschläge!
-
Ein Importscript kannst du per Kommandozeile einspielen - an die kommst du vom Programm aus doch dran...
-
Deine Idee ist schon gut, aber nun arbeitet meine Applikation schon mal durchgängig mit ADO, da wollte ich auch beim Import auf dieser Schnittstelle bleiben, um die darunterliegende DB bei Bedarf ohne große Änderungen austauschen zu können...
-
Ich habe das immer so gemacht.
Zeile eingelesen und nach Trennzeichen aufgeteilt. Diese dann sofort in die DB eingefügt. Das ganze in einer Schleife biss alle Zeilen fertig sind.