急死人的问题,一个关于SQL2K与MESSAGEPARTS的问题,在线待各位!(解决问题的大哥,可以从1489390再得20分) (50分)

  • 主题发起人 主题发起人 易名烦
  • 开始时间 开始时间

易名烦

Unregistered / Unconfirmed
GUEST, unregistred user!
1、怎样把MESSAGEPARTS写到数据库中?
var
st:tstream;
begin
st:=tstream.create;
<怎么把IDMESSAGE.MESSAGEPARTS写到TSTREAM中>
ad1.append;
tbolbfield(ad1.fieldbyname('data')).loadfromstream();
ad1.post;
end;
2、怎么把数据库中的内容转成MESSAGEPARTS?
 
MESSAGEPARTS是什么东东? [:(]
 
没听说过 [:(]
 
其实是TMESSAGEPARTS,就是IDMESSAGE的一个“组成部份”,里面包含有邮件的正文和附件!
 
i dont know.
 
sorry,没听说过
 
其实我不大理解TMESSAGEPARTS。
不过我想如果按说的“里面包含有邮件的正文和附件”的话,
如果非要存在SQL数据库里那只能只是BIN型字段才可以。
存放在BIN型字段中应该是可以实现的。

不过这样做是否合适?如果附件过大……?
我个人的看法不如单独存成文件,然后用数据库指示文件存放的位置即可。
这样不但处理方便,也便于数据库的稳定性和维护。
 
嗯,哪这样就还有一问题,怎么把它以流的形式写到本地,然后又怎么把本地文件转成我要
组件形式呢?
 
可以用流写成文件呀,用 TFileStream 对象可以方便进行此操作。
 
我不太会,能教教我怎么写吗?
1、怎么把数据(TMESSAGEPARTS)转成TFILESTREAM,然后再存成文件。
2、我只知道从文件导入TFILESTREAM,但怎么把这个流转成我要的数据类型(TMESSAGEPARTS)。
不胜感激!
 
TMESSAGEPARTS我不知道是什么。
但是TFILESTREAM是跟TSTREAM继承下来的,可以直接使用。
 
你就教我怎么把一个组件中的内容写到STREAM中,再写成文件,然后返过来再写一次。
如:把MEMO的LINES写到流中,再写成如DAT文件。然后从DAT文件写成流,再转成MEMO的LINES!
 
你说的例子倒好解决:
var
st:tMemorystream;
begin
st:=tMemorystream.create;
memo1.Lines.SaveToStream(st);
st.Position := 0;
st.SaveToFile('temp.dat');
st.free;
st:=TMemoryStream.Create;
St.LoadFromFile('temp.dat');
memo2.Lines.Clear;
memo2.Lines.LoadFromStream(st);
st.free;
deletefile('temp.dat');
end;
 
要是LINES没有LOADFROMSTREAM和SAVETOSTREAM呢,怎么做?
 
SaveToStream(AStream: TStream; const AHeadersOnly: Boolean = False);
这个方法可以直接存到流里面,
 
什么控件的Lines没有loadfromStream和savetoStream方法,memo与richedit都有的啊。
 
我是用LINES来做个比方,实际上并不是用MEMO。
 
任何一个物件总有内存印记,它就一定会有流映像。
 
后退
顶部