Я использую 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 - это клиентский набор данных