Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Welchen DB-Typ (FMX) zum verwalten von Filestreams verwenden?

  Alt 23. Jul 2022, 11:21
Herzlichen Dank für Deine Rückmeldung.

Warum brauche ich ein DB-Amin-Tool?

Ich hoffte es ging z.B. (vereinfachte Darstellung) lediglich so:

Delphi-Quellcode:

var
  db: TMyDBType;

procedure CreateDBAndFields (dbName: string);
var
  table: TMyTable;
  fldtxt, fldStream: TField;
begin
  db := TMyDBType.create (dbName);
  table := db.addtable ('FileList');
  fldtxt := table.addField ('Index', TypeText);
  fldStream := table.addField ('File', TypeStream);
  fldtxt.Indexed := true;
end;

function AddFile (table: TMyTable; fn: string): Boolean;
var
  Data: TmyRecord;
  ms: TMemoryStream; // oder Filestream
begin
  Data := table.addRecord;
  Data.FieldByName ('Index').text := fn);
  // create ms before;
  Data.FieldByName ('File').Stream := ms.loadfromfile (fn);
end;
 
BEGIN
  CreateDBAndFields (db, 'D:\myData.db');
  ...
  AddFile (db.TableByName ('FileList'), 'D:\ABitmap.bmp');
Gibt es in Delphi hierfür eine entsprechende Möglichkeit?
Delphi bietet ja 147 mitgelieferte Demos für Datenbanken, allerdings ist es nicht selten so, dass auf einer Form 10-20 unterschiedliche Datenbankkomponenten drauf sind (z.B. "C:\Users\Public\Documents\Embarcadero\Studio\22.0 \Samples\Object Pascal\Database\FireDAC\Samples\Comp Layer\TFDQuery\BlobStreams\BlobStreams.dproj"). Das überfordert mich ehrlich gesagt etwas, wenn ich eigentlich nur eine einfache, schnelle Lösung brauche. Bis ich die 20 Komponenten verstanden habe, habe ich alles schon selber programmiert.

Wenn Delphi da nichts (einfaches) bietet, ergänze ich halt eben doch mein eigenes Datenbank-Format um eine entsprechende Funktionalität (habe im Prinzip auch schon mal etwas ähnliches gemacht im Rahmen einer Bilddatenbank, wo man Bilder in einer Binärdatei hinzufügen, löschen, ersetzen und suchen kann).

Geändert von Harry Stahl (23. Jul 2022 um 12:23 Uhr)
  Mit Zitat antworten Zitat