请问fastreport设计后怎样保存到数据库里,不用文件形式保存

解决方案 »

  1.   

    先保存到流然后保存到数据库字段,当然是blob字段。
    大致代码如下,不过这只是思路,不准确,需要你对照相关帮助文档
    ......
    Stream := TMemoryStream.Create();
    Report.SaveToStream(Stream);
    Stream.Position := 0;
    TBlobField(DataSet.FieldByName('')).LoadFormStream(Stream);
    DataSet.Post();
    ......
      

  2.   

    我存进倒是可以,就是读出来提示格式出错var
      MS_ReportStream:TMemoryStream;
    begin
      MS_ReportStream:=TMemoryStream.Create;
      with dm.Qy_Brow do
      begin
        close;
        sql.Clear;
        sql.Add('select * from sys_report where tablename =:tbl ');
        parameters.ParamByName('tbl').Value := 'bas_ck';
        Open;    (FieldByName('memo') as tblobfield).savetostream(MS_ReportStream);
        frxreport1.LoadFromStream(MS_ReportStream);
        frxreport1.ShowReport;
      end;
      

  3.   

    提示错误的文件格式
    Invalid file format
      

  4.   

    Delphi在保存流进入数据库的时候是没有问题的,但是说出来不知是否跟中文有关系,如果里面含有中文字符就会报错,所以可以用ReadComponent读出来,保存然后用writecomponent还原就可以了.