送分题:TClientDataSet.SaveToFile(100分)

  • 主题发起人 主题发起人 PuppyFat
  • 开始时间 开始时间
P

PuppyFat

Unregistered / Unconfirmed
GUEST, unregistred user!
我编了个简单的flat file型的数据库, 利用TClientDataSet构件把数据从文件里导入数据库, 在DBGrid里看见确实导入了, 但用SaveToFile存盘后, 再打开, 发现是空的.
我从DBGrid里手工插入再用SaveToFile存盘确可以.
为啥?
咋办呢?
 
是说clientdataset.loadfromfile('xxx.cds');
clientdataset.savetofile('yyy.cds');
时 yyy.cds是空的吗?
不会呀, 是不是还没有完全打开???
用另一个button做savetofile这个事情, 再看看:-)
 
应该没问题,下面程序完全没问题,试一试
procedure TForm1.FormDestroy(Sender: TObject);
begin
clientdataset1.SaveToFile('c:/mydocu~1/liu.cds');
end;
 

如果是多层数据库程序 , 检查:
1 有没有 CLIENTDATESET.ApplyUpdates(-1);
2 有没有 重新打开 数据库 SELECT * FROM YOURDBF & OPEN
 
没有见过这种事,你确信你存盘得时候数据库有记录?
 
也没见过,看看路径对吗?别犯CAPP的错误
 
D4的TClientDataSet自动保存路径,所以每次需要读取数据都要显示调用
LoadFromFile.
TDBGrid输入后,很可能是没Post,滚动一下记录,让它自动Post,应该没问题
 
应该是你在存盘这前没有提交记录,先post一下。
另外,最好在formcreate的时候用loadfromfile
在formclose的时候用savetofile.
 
把源程序贴上来吧.
 
已经解决了.
关键是路径问题.
最初为让程序在任何目录下运行就将文件存在当前目录, 改成动态获取当前目录
就解决了.
 
多人接受答案了。
 
后退
顶部