请问为什么会读不到数据?(28分)

衫菜

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button6Click(Sender: TObject);
var
taa:tmemorystream;
tf:textfile;
srcf:tfilestream;
begin
taa:=tmemorystream.Create;

if savedialog1.Execute then
begin
ct1.Close;
dp1.DataSet:=table1;
ct1.ProviderName:='dp1';
ct1.Open;
ct1.SaveToStream(taa);
srcf:=TFileStream.Create(savedialog1.FileName,fmCreate or fmOpenRead or fmShareExclusive);
srcf.Seek(0,soFromEnd);//往尾部添加资源
srcf.Write(taa,taa.Size);
srcf.Free;
end;
end;
以上的过程中CT1是个CLIENTDATASET,TABLE1是有数据的,
可是当过程执行后,却发现在文件中没有任何的数据,
并且文件大小是0K,请问这是为什么呢?

 
taa.position:=0;///////////////
srcf.Write(taa,taa.Size);
 
还是老样子!不知道为什么写进去总没有东西???
 
srcf.Write(taa,taa.Size);
改为copy试试 :)
 
是Clientdataset里没数还是Stream里写不了东东?
如果是Stream里写不了东东,你先用SaveToFile写个临时文件,再copy过去肯定可以
 
srcf.Seek(0,soFromEnd);//往尾部添加资源
srcf.Write(taa,taa.Size);
上面两句改成:

taa.SaveToStream(srcf);
 
读到数据了,可是当第二次数据再次写入的时候却发现原来的数据会覆盖,
有没有办法,我可以通过流把数据追加写入在前面的数据后面呢?请指点,
 
多人接受答案了。
 
顶部