Я использую ClientDataSet
с DataSetProvider
, связанным с локальным набором данных. Когда я хочу отредактировать данные в DataSet, я открываю ClientDataSet и добавляю к нему некоторые индексы. Закончив редактирование данных, я закрываю ClientDataSet. Все работает нормально, за исключением того, что когда я снова открываю ClientDataSet и выбираю индекс, он выдает исключение с сообщением "index 'xxx' not found".
Что я делаю неправильно?
Вот код для открытия ClientDataSet:
Application.CreateForm (TfrmCardDep, frmCardDep);
try
with DM.tblCCardDep do
begin
IndexDefs.Clear;
if not Active then Open;
AddIndex ('iDepID', 'DepID', []);
AddIndex ('iDep', 'Dep', []);
IndexName := 'iDep';
FieldByName('Dep').DisplayLabel := 'Departament';
FieldByName('Dep').DisplayWidth := 50;
FieldByName('DepID').Visible := false;
end;
frmCardDep.ShowModal;
finally
if DM.tblCCardDep.Active then DM.tblCCardDep.Close;
frmCardDep.Free; frmCardDep := nil;
end;
DM.tblCCardDep — это набор данных ClientDataset.