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