小弟是个菜鸟,最近写一个表单设计器 和 一个应用程序,有一个关键的问题想请教各位老师:小弟想把设计好的表单以数据流集合的形式保存到sql server 2005,以一个字段来保存;应用程序能读取这个数据库的字段把这个表单表现出来。
    请各位老师点拨,刚学delphi不久,提供代码就最好了。谢谢老师!

解决方案 »

  1.   

    //定义一个字段A(varbinary(MAX)),把表单当作文件来处理
    //保存:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s:TMemoryStream;
    begin
     ADOQuery1.Open;
     s:= TMemoryStream.Create;
     try
       s.LoadFromFile('文件路径');
       s.Position:=0;
       ADOQuery1.Append;
       TBlobField(ADOQuery1.FieldByName('A')).LoadFromStream(s);
       ADOQuery1.Post;
     finally
       s.Free;
     end;
    end;//取出
    procedure TForm1.Button2Click(Sender: TObject);
    var
      s:TMemoryStream;
    begin
     ADOQuery1.Open;
     s:= TMemoryStream.Create;
     try
       TBlobField(ADOQuery1.FieldByName('A')).SaveToStream(s);
       s.Position:=0;
       s.SaveToFile('保存路径');
     finally
       s.Free;
     end;
    end;
      

  2.   

    表单指的是什么?fastreport的打印报表么?fastreport本身的报表是可以保存在文件中使用时再加载的,如果是其他的控件需要先看该控件是否继承自TPersitent,否则你要自己定义一个文件处理规则来保存控件的属性,加载时手动创建控件然后给属性赋值
      

  3.   

      非常感谢kaikai_kk老师的解答。
      可能我对问题的表达不够清楚,我的想法是,读取这个数据库的字段把这个表单表现出来,是表现成编译后的窗体那种,不是把保存成文件。这个应该怎么样实现呢? 谢谢!
      

  4.   

    多谢各位老师的指点。babydog01老师的也是个好方法。