Forum: Datenbanken
Delphi
by Daniel,
13. Nov 2014
Der SchemaAdapter selbst merkt sich das nicht, er verwaltet nur eine Liste an TDataSets - so geht es aus dessen Quellcode hervor.
Im Prinzip greifst Du doch - zumindest aus Daten-Sicht - in das Transaktions-Handling ein, indem Du die Daten anderweitig weiterleitest und den dann neuen Zustand als "Commited" betrachtest.
Eventuell solltest Du Deine Daten tatsächlich in eine MemTable kopieren -...
Forum: Datenbanken
Delphi
by Daniel,
13. Nov 2014
Also in etwa wie folgt:
FDConnection1.StartTransaction;
iErrors := FDSchemaAdapter1.ApplyUpdates;
if iErrors = 0 then
begin
for x := 0 to FDSchemeAdapter1.Count-1 do
FDSchemaAdapter1.DataSets.CommitUpdates;
FDConnection1.Commit;
end
else
Forum: Datenbanken
Delphi
by Daniel,
13. Nov 2014
Zur Not kannst Du ihm ja mal die Option "siData" aus dessen Eigenschaft "ResourceOptions.StoreItems" wegnehmen.
Forum: Datenbanken
Delphi
by Daniel,
13. Nov 2014
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?
Forum: Datenbanken
Delphi
by Daniel,
13. Nov 2014
Laut Doku sollte es die Eigenschaft ".Delta" sein, die Dir die Menge der geänderten Datensätze gibt.
http://docwiki.embarcadero.com/RADStudio/XE7/en/Caching_Updates_(FireDAC)