【问题标题】:restore documents which are stored as blobs in a sql database恢复在 sql 数据库中存储为 blob 的文档
【发布时间】:2016-04-24 19:57:01
【问题描述】:

我从客户那里得到了一个 sql 数据库。在sql数据库中有一个表,叫做“文档”。文档存储为 blob(查看屏幕截图)。

我想通过 Delphi (FileStream?) 恢复文档。你有什么想法吗?

问候, 丹尼斯·弗里德里希

【问题讨论】:

标签: sql-server delphi blob documents


【解决方案1】:
function SaveFieldBlobToFile(FQuery: TDataSet): boolean;
var MyStream : TMemoryStream;
begin
   Result:= false;
   MyStream:= TMemoryStream.Create;
   try
     (FQuery.Fieldbyname('MODELE') as TBlobField).SaveToStream(MyStream);
    if (MyStream<>nil) and (MyStream.Size > 0) then
    begin
      MyStream.Position := 0;
      MyStream.SaveToFile('C:\Temp\tempMyFile.zip');
      Result:= true;
    end
    else Result:= false;
  finally
    MyStream.Free;
  end;
end;


function LoadFileToBlob(FQuery: TDataSet): boolean;
var MyStream : TMemoryStream;
begin
  Result:= false;
  MyStream := TMemoryStream.Create;
  try
    MyStream.LoadFromFile('C:\Temp\tempMyFile.zip');
    MyStream.Position := 0;
    TryEdit(FQuery);
    (FQuery.FieldByName('MODELE') As TBlobField).LoadFromStream(MyStream);
    TryPost(FQuery);
    Result := True;
  finally
    MyStream.Free;
  end;
end;

【讨论】:

  • 为什么要使用中间内存流?似乎有点毫无意义 - 直接使用文件流。 FZQuery 是什么?错字?
猜你喜欢
  • 2012-06-10
  • 2017-03-25
  • 2010-09-17
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
相关资源
最近更新 更多