2016-08-02 25 views
0

Wir verwenden Interbase XE3 (2013) mit Delphi XE.Interbase-Export nach CSV

Wir müssen Tabellen als CSV-Datei exportieren, da sie für weitere Kontrollzwecke in MsAccess importiert werden.

Für den Export verwenden wir die Funktion von IBExpert und/oder von unserem eigenen Programm (Export als CSV-Datei über TClientDataSet von cxGrid).

Das Problem: Leider ist der Export zu begrenzt und wir haben keine Lösung für den Export der gesamten Tabelle (in diesem Fall 400k Reihen, ca. 80 Spalten, und es wird jeden Monat erhöht).

Ich habe über FBExport gelesen, habe es aber noch nicht getestet, da ich keine Probleme mit unserer Datenbank riskieren möchte. Hat jemand dieses Tool schon getestet?

Passende Lösung (zu finden): Wir brauchen eine Möglichkeit, ganze Tabellen von Interbase XE3 in eine CSV-Datei ohne eine Einschränkung in Größe/Spalte/Zeilen zu exportieren (deshalb denke ich, CSV ist der Weg zu gehen es gibt keinen Overhead). Auch würde ich eine Lösung vorziehen, die über Batch-Datei ohne die Notwendigkeit einer Person vor einem Computer ausgeführt werden kann.

Mit freundlichen Grüßen

+0

Bitte seien Sie genauer und fügen Sie beim Editieren Absätze hinzu, indem Sie eine Leerzeile hinzufügen, um Ihre Frage lesbarer zu machen. – AlBlue

+1

Warum nicht ODBC oder OLE-DB-Provider verwenden und Access direkt in Firebird/Interbase verbinden? –

+0

Versetzen Sie Ihre Datenbank in den schreibgeschützten Zustand, und 'FBExport' oder' FBCopy' oder 'FlameRobin' oder ein anderes Tool ist nicht in der Lage, die darin enthaltenen Daten zu ändern. –

Antwort

0

Ich habe es geschafft, diese Fragen durch Ariochs zu beantworten.

Ich habe 2 Parameter, "Name der db" und "Zeilen zu holen" (+ optionale Teiler). Mein Programm ermittelt die Anzahl der Zeilen in einer Tabelle (nur Count (ID)) und teilt sie in "abzurufende Zeilen" (als ich vorher keinen Speicher hatte)

Die Exportdatei wird am Anfang erstellt mit den Spaltennamen, die ich von meiner ibcquery als erste Zeile bekommen habe. Auch die max. Die Breite meines mehrdimensionalen Arrays wird durch die Spaltenanzahl der Tabelle festgelegt. Die Länge ist die "zu holenden Zeilen".

Anweisung ist wie "SELECT * VON TABLENAME REIHEN X BIS Y". Dies wird für jeden geteilten Teil der Tabelle ausgeführt und in mein Array geschrieben. Nach dem Füllen des Arrays wird die Abfrage geschlossen und die Daten werden an meine CSV-Datei angehängt. Ich gebe das Array frei und der nächste Teil wird geladen, bis die ganze Tabelle in meine Datei geschrieben ist.

Also die nächste Einschränkung wäre die Dateigröße, denke ich.

Danke vier Ihre Hilfe!

Verwandte Themen