我在使用ClientDataSet.StatusFilter := [usDeleted]
時遇到了一些困難。
它什麼都不做。我讓我的ClientDataSet連接到一個Provider。
應用StatusFilter時,DataSet不顯示已刪除的記錄。
它只是顯示應用StatusFilter之前的記錄。ClientDataSet上的StatusFilter
另一方面。如果我使用的ClientDataSet.CreateDataSet
未連接到提供程序,並且只使用ClientDataSet作爲內存中的數據集,那麼StatusFilter的工作方式與文檔中描述的相同。
DataSet只顯示已刪除的記錄。
ClientDataSet.UpdateStatus還顯示usDeleted的正確狀態。
我可以讓我的第一個連接到提供程序的ClientDataSet顯示已刪除的記錄的唯一方法是使用ClientDataSet.Delta屬性。但是這不允許我恢復已刪除的記錄。
//Note: cds.LogChanges = true
cds := TClientDataSet.Create(nil);
cds.Data := MyClientDataSet.Delta;
cds.First;
while not cds.eof do
begin
case cds.UpdateStatus of
usModified:
begin
ShowMessage('Modified');
cds.RevertRecord;
end;
usInserted: ShowMessage('Inserted');
usDeleted: ShowMessage('Deleted');
end;
cds.Next;
end;
cds.Free;
我在做什麼錯?
您的CDS是否有LogChanges = False? –
否.LogChanges爲True。 –