OK、コードがないので、いくつか書きます。これはあなたが話していることのように聞こえますが、私のマシンでは動作します。だから今、あなたは自分が違うことをしていることを教えてください。TClientDataSet、TDataSource、TDBGridをそれぞれ 2 つ配置します。それらを結び付けて、正しい名前を付けます。
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;