我正在使用TClientDataset.CloneCursor来实现相同数据的不同视图。我有一个主数据集和几个克隆,每个克隆都包含主数据集字段的不同子集。但是当我尝试显示来自克隆的数据时,它们会变空。主数据集正确填充数据,克隆数据集的CloneSource属性指向正确的数据集,但如果我并排放置两个网格,一个显示主数据库,另一个链接到克隆视图,克隆查看一个将是空白的。
知道是什么原因引起的吗?
答案 0 :(得分:2)
好的,既然你没有任何代码,我会为你写一些。这听起来就像你在谈论的那样,它可以在我的机器上运行。所以现在你告诉我你在做什么不同。将 TClientDataSet , TDataSource , TDBGrid 分别放下两个。将它们连接起来并正确命名:
var
idField: TFieldDef;
stringField: TFieldDef;
begin
idField := ds1.FieldDefs.AddFieldDef;
idField.DataType := ftInteger;
idField.Name := 'id';
stringField := ds1.FieldDefs.AddFieldDef;
stringField.DataType := ftString;
stringField.Size := 10;
stringField.Name := 'name';
ds1.CreateDataSet;
ds1.InsertRecord([1, 'Jim McKeeth']);
ds1.InsertRecord([2, 'Mason Wheeler']);
ds1.InsertRecord([3, 'Jeff Atwood']);
ds2.CloneCursor(ds1, true);
ds2.Filter := 'id=1';
ds2.Filtered := True;
end;