0

我有一个没有提供程序的断开连接的 ClientDataset(我从工具栏中拖动组件,右键单击它并在上下文菜单中选择“创建数据集 ...”)。我从数据库中加载一些记录,如下所示:

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。

4

1 回答 1

-1

If you do not append additional data, do these instead

From
if not cdsMyClientDataset.Active then 
begin 
  cdsMyClientDataset.Open; 
end;

cdsMyClientDataset.EmptyDataSet;
cdsMyClientDataset.AppendData(data,False);

To
cdsMyClientDataset.Data := data;

Cheer Pham

于 2013-07-26T16:55:07.553 回答