奇怪?为什么用TClientDataSet.LoadFromFile()第二次加载一个数据包时出错?(100分)

  • 主题发起人 主题发起人 occult
  • 开始时间 开始时间
O

occult

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个桌面应用中,我使用TClientDataSet作为数据库引擎,在程序
初启时会自动用LoadFromFile()加载一个数据包,这一切正常。但我一旦
在程序中用OpenDialog打开另一个数据包进行加载就会出错?用的也是
LoadFromFile()过程。

如:

procedure TForm.Create(Sender:TObject);
begin
ClientDataSet.LoadFromfile(Fn); //ok
Createindex. //ok
end;

procedure TForm.buttonclick(Sender:Tobject);
begin
if OpenDialog.Execex() then
begin
ClientDataSet.LoadFromfile(OpenDialod.fileName); //error
CreateIndex; //error
end;
end;

请指点。。。。。。。。。。。。。。。。????
 
出错信息?
 
出错信息说一个索引键没有找到
 
to occult:
问题出在CreateIndex;上。 可改为:

if OpenDialog.Excute() then
begin
ClientDataSet.DeleteIndex('xxx');-----xxx为上一索引名。
ClientDataSet.LoadFromfile(OpenDialog.fileName);
CreateIndex;
end;
TRY;
 
在打开新的数据集之前是不是应该选关闭原来的数据集?
 

简单一点,你把所有的CreateIndex;去掉就可以了
 
多人接受答案了。
 
后退
顶部