Почему мой клонированный набор данных пуст? - PullRequest
0 голосов
/ 20 декабря 2008

Я использую TClientDataset.CloneCursor для реализации разных представлений одних и тех же данных. У меня есть набор основных данных и несколько клонов, каждый из которых содержит различное подмножество полей набора основных данных. Но когда я пытаюсь отобразить данные из клонов, они появляются пустыми. Основной набор данных корректно заполняется данными, а свойство CloneSource наборов данных клонов указывает на правильный набор данных, но если я поставлю две сетки рядом, одна из которых будет отображать мастер, а другая связана с представлением клона, клон вид один будет пустым.

Есть идеи, что может вызвать это?

1 Ответ

2 голосов
/ 20 декабря 2008

ОК, поскольку у вас нет кода, я напишу для вас. Это похоже на то, о чем вы говорите, и это работает на моей машине. Так что теперь вы говорите мне, что вы делаете по-другому. Положите два из 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;
...