读书人

表单以流的形式保存到数据库中,该怎么

发布时间: 2012-02-10 21:27:42 作者: rapoo

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

[解决办法]
//定义一个字段A(varbinary(MAX)),把表单当作文件来处理
//保存:

Delphi(Pascal) code
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;
[解决办法]
表单指的是什么?fastreport的打印报表么?fastreport本身的报表是可以保存在文件中使用时再加载的,如果是其他的控件需要先看该控件是否继承自TPersitent,否则你要自己定义一个文件处理规则来保存控件的属性,加载时手动创建控件然后给属性赋值
[解决办法]
举个例子吧,比如一个窗口,上面一个按钮,你想流出啥具体内容来?
[解决办法]
楼主是想把窗体上的每个控件的位置及相关属性都保存起来,需要时把它读出来,动态生成窗体上的各个控件。这个就不要用内存流了。直接把各控件的位置、大小等都保存起来,到时动态创建就可以了。

读书人网 >.NET

热点推荐