![]() |
Datenbank: ?/MySQL • Version: 5.xx • Zugriff über: egal/Firedac
TClientdataset vs. TFDMemTable vs. TFDQuery
Hi zusammen
Im Moment bastle ich an einem Testprogramm, mit dem ich die Arbeit mit den im Titel genannten Komponenten austesten möchte. Noch bin ich allerdings auf der Suche nach entsprechenden Forenbeiträgen, die mir meine Fragen (hoffentlich) beantworten können und habe desshalb bislang nur wenig wirklich umgesetzt. Da ich mit FireDac auf MySQL arbeite, war mein erster Gedanke der an TFDMemtable. Um mir das Prinzip zu verdeutlichen, habe ich trotzdem mal das Tutorial zu ![]() Doch erstmal zur Struktur, wobei es eigentlich egal ist, welche Komponente ich verwende:
Delphi-Quellcode:
Der Procedurname ist selbst auch noch nicht in Stein gemeisselt. Passieren soll im Anschluss an obige Zeilen folgendes:
procedure TDMLClientTest.FileQueryLoad;
begin FileQuery.FieldDefs.Add('id', ftAutoinc); FileQuery.FieldDefs.Add('fk', ftInteger); FileQuery.FieldDefs.Add('Name', ftString); FileQuery.FieldDefs.Add('Bitmap', ftBlob); FileQuery.FieldDefs.Add('NEF', ftBlob); end;
Knackpunkt könnte sein: Die NEF-Dateien sind zwischen 10 und 24 Megabite gross; daraus ertellte Bitmaps sind durchschnitlich dreimal grösser. Das ergibt einen (Arbeits-)Speicherbedarf von knappen 12GB - installiert habe ich deren 8GB... Ein weiterer Knackpunkt könnte sein, dass das Query gar nicht in der Lage ist, einen Datensatz per SQL in sich selbst zu Speichern... Auf die Idee, kein TFDMemtable, sondern nur das Query zu verwenden, brachte mich die Erkenntnis, dass TFDMemtable die Möglichkeit, sich selbst in eine Datei zu speichern, von TDataset erbt. Und da das Query dies auch erbt und ich eine Memorytable nicht wirklich brauche - wieso also sollte ich nicht direkt das Query verwenden? Wie ich oben bereits erwähnt habe, hatte ich mal einen Test mit TClientdataset geschrieben, und von daher stellt sich mir die Frage: wieso nicht gleich das verwenden? Ein ![]() Was auch immer ich schlussendlich verwende: Es dient dazu,die NEF- und BMP-Bilder nicht in der eigentlichen Datenbank abzulegen, sondern in externen 'Tabellendateien', die auf beliebigen, auch ![]() Was würdet ihr verwenden? Was spricht für wen? Was spricht gegen wen? Gruss Delbor |
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Zitat:
|
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Hi Uwe Raabe
Zitat:
Gruss Delbor |
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Zitat:
|
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Hi Uwe Raabe
Zitat:
Zitat:
Zitat:
Gruss Delbor |
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Warum willst Du dann NEF und Bitmap in der DB speichern?
Bitmap soll ja wohl kein thmubnail werden, oder? Wenn Du NEFs in Bitmaps konvertieren kannst, greife auf die NEFs zu und konvertiere on the fly beim Zugriff. Damit sparst Du unheimlich Platz - egal ob im Arbeitsspeicher oder auf der Platte. |
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Zitat:
|
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Hi bnreimer42
Zitat:
Zitat:
Zitat:
Gruss Delbor |
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Hi Uwe Raabe
Zitat:
Da ich aber sowieso vorhabe, die für die Anwendung massgebliche Datenbank auf SQLite umzustellen, bietet es sich hier geradezu an, dieses auch hier zum Einsatz kommen zu lassen. Gruss Delbor |
AW: TClientdataset vs. TFDMemTable vs. TFDQuery
Sqlite wäre auch ein Kandidat für mich.
Die Frage die ich mir stelle ist ob die nicht auch alles im memory hält. Oder zumindest nur den aktuellen Datensatz. Kann man das paging steuern ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 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