Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firedac Datenimport/export (https://www.delphipraxis.net/197447-firedac-datenimport-export.html)

Rainer Wolff 7. Aug 2018 15:00

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

Firedac Datenimport/export
 
Ich habe grad ein schönes Video gesehen wo gezeigt wird, wie "einfach" man Daten mit Firedac nach Json/XML exportieren und importieren kann.

Leider habe ich Probleme mit der praktischen Umsetzung. Sinn und Zweck soll letztlich sein, ein paar Datensätze in ein Textfile zu speichern, per Mail an einen Empfänger zu leiten, der die Daten dann in seine Datenbank importiert.

Nun habe ich schon gelernt, dass FDTable.LoadFromFile die Daten nur in den Cache reinhaut, aber nicht in der DB persistiert.

Nächste Erweiterung eine zweite FDTable und eine FDBatchmove Komponente. Die sagt mir aber, dass meine Source-Table unidirektional ist, und der Batchmove dann keine Lust hat.

Gibt es hier einen kleinen netten Trick, um die Table nach dem Einlesen zu persistieren, oder warum ist die Table plötzlich unidirektional.

Oder lass ich den alten, miesen, aber funktionierenden Quelltext stehen.

hoika 8. Aug 2018 07:46

AW: Firedac Datenimport/export
 
Hallo,
ich würde den letzten Satz nehmen ;)

Neumann 8. Aug 2018 08:14

AW: Firedac Datenimport/export
 
Ich verwende für solche Import/Export-Geschichten Funktionen aus dem DelhiMVCFramework. Damit bekommt man schöne Erweiterungen für jede von TDataset abgeleitete Komponente wie Speichen in JsonArray, laden von JSONArray usw.

Einfach mal ansehen.

Uwe Raabe 8. Aug 2018 09:17

AW: Firedac Datenimport/export
 
Grundsätzlich ist der Ansatz mit TFDBatchMove schon richtig. Ich kann jetzt leider nicht beurteilen, wo in deinem Fall die Probleme liegen. Vielleicht kannst du etwas mehr ins Detail gehen.

Rainer Wolff 8. Aug 2018 09:46

AW: Firedac Datenimport/export
 
Ursprünglich wollte ich das hier antworten:

Zitat:

ich habe zwei FDTables auf mein Formular geklatscht, beide mit meiner Datenbanktabelle verknüpft. Dazu ein FDBatchmove, einen FDBatchMoveDataSetReader, einen FDBatchMoveDataSetWriter, der Reader verknüpft mit meiner FDTable1, der Writer mit der FDTable2. Reader und Writer mit FDBatchmove verknüpft.

Dann
Code:
fdtable1.LoadFromFile(DlgOpen.Filename);
das funzt noch. Da ist die FDTable auch noch bidirektional

dann
Code:
FDBatchMove1.Execute;
Fehlermeldung:
Project Stunden.exe raised exception class EFDException with message '[FireDAC][Comp][DS]-211. Durchführen der Operation für unidirektionale Datenmenge [FDTable1] nicht möglich'.
Inzwischen habe ich aber noch die FDTable1 durch eine FDQuery ersetzt, damit gehts dann. Komisch, aber was solls.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.

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