我有一个没有提供程序的断开连接的 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。