ClientDataSet - quais registros foram alterados |
Top Previous Next |
|
//como saber os registros alterados no clientdataset
//no evento calcfields insira o seguint codigo if Temp.UpdateStatus = usModified then Temp.FieldByName('status').AsString := 'S' //campo calculado
{possiveis UpdateStatus (usUnmodified, usModified, usInserted, usDeleted)}
{obs.: se os registro foram inseridos via codigo e nao pelo provider voce deve limpar o log do clientdataset (temp.mergeChangeLog) senao o update status sera usInserted.
Voce pode usar o statusfilter para mostrar somente os deletados, inseridos e modificados } Temp.StatusFilter := [usModified, usInserted, usDeleted];
//no calcfields if Temp.UpdateStatus = usModified then Temp.FieldByName('status').AsString := 'M' //campo calculado if Temp.UpdateStatus = usInserted then Temp.FieldByName('status').AsString := 'I' //campo calculado if Temp.UpdateStatus = usDeleted then Temp.FieldByName('status').AsString := 'D' //campo calculado
{obs: quando usando os statusfilter os registros que foram modificados podem ficar com a flag = ''. Pode ser um Bug do clientdataset} |