Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FireDAC TFDMemtable (https://www.delphipraxis.net/177330-firedac-tfdmemtable.html)

Union 31. Okt 2013 15:06

Datenbank: FIreDAC • Version: 2 • Zugriff über: FireDAC

FireDAC TFDMemtable
 
Ich habe festgestellt, dass die Memtable von FireDAC sämtliche Daten löscht, sobald Active auf False gesetzt wird. Ich finde das aber nicht in der Dokumentation. Aus meiner Sicht sollte das erst beim DisposeOf bzw. Free passieren oder wenn man eine entsprechende DML oder Funktion absetzt (z.b. EmptyDataSet).

Uwe Raabe 31. Okt 2013 16:39

AW: FireDAC TFDMemtable
 
Lies mal die Hilfe zu TADResourceOptions.Persistent.

Union 31. Okt 2013 16:51

AW: FireDAC TFDMemtable
 
Danke, das hilft. Dafür bist Du ja auch Master Developer ;) Jetzt kann ich endlich meine ClientDatasets loswerden.

Der schöne Günther 29. Dez 2016 18:08

AW: FireDAC TFDMemtable
 
Ich bin zu dumm hierfür.

TDBGrid, TDBNavigator, TDataSource und TFDMemTable aufs Formular geklatscht.
Und eine TCheckbox für
Delphi-Quellcode:
FDMemTable.Active := myCheckbox.Checked


Erwartungshaltung: Wenn ich
Delphi-Quellcode:
TFDMemTable.ResourceOptions.Persistent = True
habe, dann kann ich die FDMemTable öffnen und schließen und alle Daten bleiben erhalten.

Fakt: Es ist nicht so.

Was fehlt mir?

Uwe Raabe 29. Dez 2016 21:16

AW: FireDAC TFDMemtable
 
Hast du auch
Delphi-Quellcode:
PersistentFileName
gesetzt?

Der schöne Günther 29. Dez 2016 21:31

AW: FireDAC TFDMemtable
 
Nein,*ich will doch gar nichts in Dateien zwischenspeichern.

Ich habe die Hilfe so verstanden.

Zitat:

Um Tabelleninhalt im Arbeitsspeicher in eine DFM-Datei zur Entwurfszeit zu speichern, setzen Sie Persistent auf True und leeren Sie PersistentFileName.

Uwe Raabe 29. Dez 2016 23:11

AW: FireDAC TFDMemtable
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1357502)
Zitat:

Um Tabelleninhalt im Arbeitsspeicher in eine DFM-Datei zur Entwurfszeit zu speichern, setzen Sie Persistent auf True und leeren Sie PersistentFileName.

In dem Fall darf
Delphi-Quellcode:
Active
aber nicht
Delphi-Quellcode:
false
werden. Das würde die Daten löschen.

Der schöne Günther 30. Dez 2016 09:33

AW: FireDAC TFDMemtable
 
Genau das möchte ich ja verhindern:

Ich möchte bei einer FDMemTable einmal
Delphi-Quellcode:
Active := False
machen dürfen ohne dass alle Daten weg sind. Genau das schien der Themenersteller doch auch zu wollen und wurde mit deinem Ratschlag offensichtlich glücklich. Ich bin verwirrt.

Uwe Raabe 30. Dez 2016 11:57

AW: FireDAC TFDMemtable
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1357527)
Ich möchte bei einer FDMemTable einmal
Delphi-Quellcode:
Active := False
machen dürfen ohne dass alle Daten weg sind.

Die in der DFM gespeicherten Daten werden beim Laden des TFDMemTable aus der DFM geholt, wenn sie denn zur Designzeit dort abgelegt wurden. Ein
Delphi-Quellcode:
Active := false
löscht diese Daten (ist nun mal so - übrigens auch zur Designzeit). Da das TFDMemTable keinen Zugriff auf die DFM hat, kann es die Daten auch später nicht mehr daraus laden. Um das zu umgehen, musst du eben die Daten in einer persistenten Datei abspeichern.

Es gibt nur diese zwei Möglichkeiten: entweder aktiv lassen oder eine Datei verwenden. Ich kann es halt auch nur so darstellen wie es ist.

Der schöne Günther 30. Dez 2016 12:13

AW: FireDAC TFDMemtable
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1357544)
Es gibt nur diese zwei Möglichkeiten: entweder aktiv lassen oder eine Datei verwenden.

Alles klar, danke, dann weiß ich bescheid :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Seite 1 von 2  1 2      

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