![]() |
Datenbank: MySQL • Version: XE7 • Zugriff über: Firedac
Firedac SchemaAdapter Problem!
Hallo Zusammen!
Zitat:
FDConnection<-FDQuery<-FDSchemaAdapter Naja und FDGUIxWaitCursor & FDStanStorageBinLink mit
Delphi-Quellcode:
Hole ich mir alle Daten in ein Grid
fdQuery.SQL := 'SELECT * FROM {id Test}';
fdQuery.Active := true; DBGrid<- DataSource <- FDQuery Soweit so gut. Mit einen Butten schreibe ich den SchemaAdapter auf die Platte.
Delphi-Quellcode:
Ups... ALLE Datensätze werden auf die Platte geschrieben.
FDSchemaAdapter.SaveToFile('DIV.DAT',sfBinary);
FDSchemaAdapter.ApplyUpdates; Jetzt ändere ich einen Datensatz (fdquery.CachedUpdates := true) und drücke den Button nochmal. Und schon wieder werden alle Daten auf die Platte geschrieben! Wie schaffe ich es das nur die Änderungen vom fdSchemaAdapter gespeichert werden? Grüsse Mavarik |
AW: Firedac SchemaAdapter Problem!
Laut Doku sollte es die Eigenschaft ".Delta" sein, die Dir die Menge der geänderten Datensätze gibt.
![]() |
AW: Firedac SchemaAdapter Problem!
Zitat:
Ich habe doch extra einen SchemaAdapter, der die Änderungen zentralisieren soll, oder? |
AW: Firedac SchemaAdapter Problem!
Ja, aber der zentralisiert die Änderungen aller an ihn angebundenen DataSets.
Du kannst ihn nach den Datasets fragen und dann das jeweilige Delta abrufen. Jeder dieser DataSets kann ja ein völlig anderes Feld-Layout haben, das alles in einem gemeinsamen Topf verwalten zu wollen, ergibt keinen Sinn. Was möchtest Du denn erreichen? |
AW: Firedac SchemaAdapter Problem!
Zitat:
Für alle Fälle wo PC1 nicht per Datenbankverbindung zu Datenserver verbinden kann. Mavarik PS.: Könnte ggf. auch per eMail sein. :stupid: |
AW: Firedac SchemaAdapter Problem!
Zur Not kannst Du ihm ja mal die Option "siData" aus dessen Eigenschaft "ResourceOptions.StoreItems" wegnehmen.
|
AW: Firedac SchemaAdapter Problem!
Zitat:
Jetzt müsste ich nur noch den Change-Puffer löschen, denn obwohl ich ApplyUpdates gemacht habe, kommen beim 2., 3. usw. immer noch die Änderungen vom 1. mal mit... Mavarik |
AW: Firedac SchemaAdapter Problem!
Zitat:
Delphi-Quellcode:
FDConnection1.StartTransaction;
iErrors := FDSchemaAdapter1.ApplyUpdates; if iErrors = 0 then begin for x := 0 to FDSchemeAdapter1.Count-1 do FDSchemaAdapter1.DataSets[x].CommitUpdates; FDConnection1.Commit; end else FDConnection1.Rollback; |
AW: Firedac SchemaAdapter Problem!
Zitat:
Ich suche ja nach eine "Aktenkoffer-Lösung"... Nach dem Motto: "arbeite mal schön weiter, auch ohne Internetverbindung auf Deinen MemTablen"... Der SchemaAdapter merk sich alle Änderungen. Bevor ich die App beende, wird der Change-Log auf die Platte geschrieben. Mavarik |
AW: Firedac SchemaAdapter Problem!
Aus Sicht der DB-Komponenten ist das Verhalten genau richtig. Die können ja nicht wissen, dass Du die Daten schon anderweitig losgeworden bist.
Es geht also um die Frage, wie Du einem TDataSet mitteilen kannst, dass er die Information, dass da Datensätze aktualisiert wurden, vergessen und seinen Zustand als "aktuell" betrachten kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:13 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 by Thomas Breitkreuz