Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen? (https://www.delphipraxis.net/213674-tfdquery-savetofile-und-loadfromfile-kann-das-auch-tabellen-erzeugen.html)

QuickAndDirty 7. Sep 2023 12:50

Datenbank: Firebird • Version: 2.5 • Zugriff über: Firedac

TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen?
 
Also in der Hilfe findet man
dieses code schnipsel
Delphi-Quellcode:
FDQuery1.Open('select * from customers');
FDQuery1.FetchAll;
FDQuery1.SaveToFile('c:\customers.xml', sfAuto);
....
FDMemTable1.LoadFromFile('c:\customers.xml', sfAuto);
FDMemTable1.Locate('CUSTOMER_ID', [100], []);
Ich habe damit auch schon daten gesichert als JSON datei und reimportiert.
Das sieht auch ganz gut aus.
Mein Anliegen ist aber ein anderes . Da ja die Metadaten auch gesichert werden, ist meine Frage:
Gibt es eine fertige funktion oder klasse oder ein TFDStanStorageJSONLinkFirebirdTablemaker die
aus dieser Datei wieder eine Tabelle in einer leeren Datenbank macht?
Es geht mir nicht um das Backup sondern um das tranferieren von Daten in ein Neutrales Datenformat auf der Festpaltte
und dann wieder zurrück in eine von Firedac unterstützte leere Datenbank.
Wir haben hier sowas schon fertig programmiert...aber mit vielen Abhängigkeiten.
Ich bin neugierig ob sowas von Firedac oder Delphi schon mitausgeliefert wird.
Wenn die TFDBatchMove schon haben warum dann nicht auch einen TableCreator oder so

Uwe Raabe 7. Sep 2023 13:46

AW: TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen?
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1526578)
das tranferieren von Daten in ein Neutrales Datenformat auf der Festpaltte
und dann wieder zurrück in eine von Firedac unterstützte leere Datenbank.

Aber das lässt sich doch mit TFDBatchMove und dem passenden Reader und Writer schon realisieren.

QuickAndDirty 7. Sep 2023 13:51

AW: TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen?
 
Mit zwischenspeichern in einer Datei?
Also beispielsweise
Firebird datenbank in Datei exportieren
Datei in eine leere MSSQL Datenbank importieren.

Und das ohne das ich die Reader und Writer selberschreiben muss?

Uwe Raabe 7. Sep 2023 14:31

AW: TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen?
 
Ja, klar. Eine TFDBatchMove Komponente verbunden mit einem TFDBatchMoveSQLReader und einem TFBBatchMoveTextWriter sorgt für das Erstellen einer Textdatei im dort eingestellten Format (z.B. rfCommaDoubleQuote). Mit einem TFDBatchMoveTextReader und einem TFDBatchMoveSQLWriter hat man dann den umgekehrten Weg.

Update: Wenn beide Datenbanken im Zugriff sind geht das auch in einem Schritt mit einem TFDBatchMoveSQLReader und TFDBatchMoveSQLWriter.

QuickAndDirty 7. Sep 2023 15:15

AW: TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen?
 
Heiliger bimbam,
das hört sich ja richtig gut an.

Nicht schlecht.
ich hab schon gemerkt dass Savetofile Firebird dateien mit ID feldern mit on insert Trigger und Sequence als Autoincfelder erkennt...das war schwer beeindruckend.
Ich nehme an das kann TFDBatchMove + TFDBatchMoveSQLReader + TFBBatchMoveTextWriter auch, so dass tatsächlich beim, import nach mssql Autincfelder angelegt würden.
Zitat:

Zitat von Uwe Raabe (Beitrag 1526591)
Update: Wenn beide Datenbanken im Zugriff sind geht das auch in einem Schritt mit einem TFDBatchMoveSQLReader und TFDBatchMoveSQLWriter.

Ja aber die gehen nicht gut durch teamviewer oder Email.

Scheiße, Firedac ist echt gut.

Sind die Indices und Spracheinstellungen dabei?

Uwe Raabe 7. Sep 2023 15:24

AW: TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen?
 
Ein BatchMove dient dazu Daten zu transportieren. Das Erstellen der Tabelle aus einer z.B. CSV Datei wird zwar unterstützt solange die Feldnamen mit gespeichert sind, aber bei den Datentypen wird erstmal heuristisch gearbeitet (siehe Analyze). Ein Ersatz für ein sauberes SQL-Skript zum Erzeugen der Tabellen einer Datenbank mit allen dort möglichen Finessen wie Constraints, Indizes, Foreign Keys usw. ist damit aber nicht abgedeckt.

Sinspin 7. Sep 2023 15:58

AW: TFDQuery.SavetoFile und LoadFromFile kann das auch Tabellen erzeugen?
 
MSSQL hat schon ein paar Eigenheiten. Das müsste FireDac beim Transfer mit beachten. Also Trigger und SP müssten dann umgeschrieben werden. Schon bei Feldwerten und Indexen kann das ganz schön tricky werden dass das hinterher noch alles ohne Rums läuft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz