Delphi:在对 ClientDataset 使用 AppendData(Data,False) 两次后,我无法编辑其行或移动其光标



我有一个断开连接的ClientDataset(我从工具栏拖动组件,右键单击它,然后在上下文菜单中选择"创建数据集…"),它没有Provider。我从数据库中加载一些记录,如下所示:

someProvider.Dataset = someQuery;
someQuery.Open;
data:= someProvider.GetRecords(-1,recordsextracted,ResetOption+MetaDataOption);
if not cdsMyClientDataset.Active then 
begin 
  cdsMyClientDataset.Open; 
end;
cdsMyClientDataset.EmptyDataSet;
cdsMyClientDataset.AppendData(data,False);

客户端数据集与数据源绑定到DbGrid,我允许用户添加、删除或编辑记录。如果他愿意,他可以再次重新加载以放弃更改,我第二次调用上面的代码。

但是在第二次调用上面的代码之后,DbGrid就不起作用了。用户无法滚动或编辑任何字段。我可以通过编程方式导航和编辑记录,但不能使用DbGrid。

如果不附加附加数据,请使用

From
if not cdsMyClientDataset.Active then 
begin 
  cdsMyClientDataset.Open; 
end;
cdsMyClientDataset.EmptyDataSet;
cdsMyClientDataset.AppendData(data,False);
To
cdsMyClientDataset.Data := data;

干杯Pham

最新更新