流和数据库的问题 在线等待(100分)

  • 主题发起人 cyf_00002
  • 开始时间
C

cyf_00002

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将RICHEDIT(其中有图片)中的内容写入数据库,不知道该用什么方法,
请大家多多指教!


 
先将其保存为临时文件(可保存为rtf格式,然后将文件保存到数据库中,最后再删除临时文件,
代码大致如下:
Red_NySjq.Lines.SaveToFile('temp.rtf');
dataset1.edit; //数据集必须已打开并定位到相关记录。
TBlobField(dataset1.fieldByName('BLOB字段')).LoadFromFile('temp.rtf');
dataset1.post;
deleteFile('temp.rtf');
 
其实Richedit不管内容有什么东西保存下来都是RTF格式
RTF也是纯文本文件.数据库字段用Text就行了.
非要按流的方式保存也行.数据库字段用Image(SQL Server)或 OLE(Access) 或LONG RAW(Oracle).
 
同意HunterTeam
 
这样的话
是不是太慢了,数据量很大的,而且必须用ACCESS(FOR 发行,我也想用SQL SERVER 数据类型丰富 BUT ONLY)
大家看看还有什么新招
这些招我也查到了
我估计不型吧

 
我现在感觉DELPHI的ADO和VB的相比 好象要慢一点
大家有感觉么?
 
为什么不行呢,SQL SERVER里面有个IMAGE类型的字段,就类似于BLOB类型,可以用于存放
richedit里的内容。数据量大的问题,可以在打开表的时候不全部取出数据,只取出需要
的那条数据,这样就不至于打开太慢了。如果说的是RichEdit里的内容太多的话,那用什么
数据库都是一样的。
 
不是
是该程序属于小程序,全国发行,只能用ACCESS,用SQL SERVER维护就不那么简单了。
请各位大虾帮帮忙
给段代码
 
方法很多,也可用 TBlobField 来构造流。
 
大哥
我是个初哥,给段代码啊
我看见DELPHI那么多的数据类型就犯晕
 
var
aStream: TMemoryStream;
begin
aStream := TMemoryStream.Create;
RichEdit1.PlainText := False;
RichEdit1.SaveToStream(aStream);
TBlobField(ADODataSet1.FieldByName('Picture')).LoadFromStream(aStream);
aStream.Free;
end;
 
多人接受答案了。
 
顶部