Einzelnen Beitrag anzeigen

darkstone

Registriert seit: 4. Feb 2003
26 Beiträge
 
#2
  Alt 16. Jun 2003, 07:31
Hi!

Eigentlich müsste das mit einem BlobStream, der mit dem Blob-Feld verknüpft ist, gehen.
Das folgende ist jetzt aus dem Stegreif: (keine Garantie, dass es funkt)

Delphi-Quellcode:
function WriteBlob( aDB: TDatabase; aTableName: String; aFileName: String ): Boolean;
var
  aQuery: TQuery;
  aBlobStr: TBlobStream;
  aFileStr: TFileStream;
begin
  aQuery := TQuery.Create( nil );
  aQuery.Database := aDB;
  aQuery.SQL.Add( 'SELECT * FROM '+aTableName+' WHERE Nr=1' );
  aQuery.RequestLive := True; // damit können Änderungen in TQuery-Feldern gemacht werden
  aQuery.Open;
  aQuery.Edit;
  aBlobStr := TBlobStream.Create( aQuery.FieldByName('BlobField') );
  aFileStr := TFileStream.Create( aFileName, fmOpenRead );
  aBlobStr.CopyFrom( aFileStr, aFileStr.Size );
  aQuery.Post;
  aBlobStr.Destroy;
  aFileStr.Destroy;
end;
Wie gesagt - ist aus dem Stegreif. Dies ist die BDE-Version - dbExpress funktioniert aber genau so. Mehr dazu in der Hilfe: TBlobStream
  Mit Zitat antworten Zitat