TClientDataSet og pesudo-sletning af record
Jeg har set lyset og det hedder TClientDataSet. Meget af det jeg møjsommeligt pakkede ind i klasser og lister er tilsyneladende opfundet.Der er dog spørgsmål:
Når jeg sletter en record vil jeg sjældent slette den i tabellen, men bare sætte et slette-flag til true.
Hvor er det bedst at gøre dette? Kan snildt fange den i TClientDataSet'ens BeforeDelete. Men recorden ikke forsvinder fra min grid medmindre jeg lukker og åbner datasættet igen (henter fra en query der filtrerer where aktiv = 1):
DataSet.Edit;
try
DataSet.FieldByName('aktiv').Value := false;
finally
DataSet.Post;
end;
Abort;
.. Men hvad så med TDataSetProvider'ens BeforeUpdateRecord-event?
(Sender: TObject; SourceDS: TDataSet; DeltaDS: CustomClientDataSet; UpdateKind: TUpdateKind; var Applied: Boolean);
Umiddelbart virker det mere fornuftigt her, men jeg kan ikke få det til at virke. Her kan jeg fange den på UpdateKind og sætte et Applied-flag - men skal jeg poste en update-operation til DeltaDS eller hvad?
Bedste adgang til den problemstilling efterlyses.
