Надо пробежать по записям и узнать их состояние.
with dxMemData1 do
begin
First;
while not eof do
begin
if "Modified" then
// изменена/добавлена
else
// не изменена
Next;
end;
end
Есть cвойства типа "UpdatesPending"/"Modified" для этого случая? Говорят, что либо добавлять поле, либо перекрываеть метод UpdateStatus: TUpdateStatus. Есть другие варианты? Если нет, то стоит ли свое городить или у DevExpress есть это в планах?
Здравствуйте, непонимайу, Вы писали:
В моем DevExpress'е таких штук нет
а UpdateStatus — это, насколько я понял, состояние датасета, а не записи. Гляньте на TClientDataSet.
Н>Надо пробежать по записям и узнать их состояние.
Н>Н>with dxMemData1 do
Н> begin
Н> First;
Н> while not eof do
Н> begin
Н> if "Modified" then
Н> // изменена/добавлена
Н> else
Н> // не изменена
Н> Next;
Н> end;
Н> end
Н>
Н>Есть cвойства типа "UpdatesPending"/"Modified" для этого случая? Говорят, что либо добавлять поле, либо перекрываеть метод UpdateStatus: TUpdateStatus. Есть другие варианты? Если нет, то стоит ли свое городить или у DevExpress есть это в планах?
Здравствуйте, silentroach, Вы писали:
S>Здравствуйте, непонимайу, Вы писали:
S>В моем DevExpress'е таких штук нет
S>а UpdateStatus — это, насколько я понял, состояние датасета, а не записи. Гляньте на TClientDataSet.
Не пробовал с другими датасетами, но у TClientDataset
свойство UpdateStatus это как раз статус текущей записи.
Есть еще свойство StatusFilter с помощью которого, можно "высветить" еще и удаленные записи.
И все это работает до тех пор, пока у TClientDataset не вызван ApplyUpdates.
После ApplyUpdates информация об изменениях теряется, т.е. удаленные записи реально удаляются,
измененые — реально модифицируются, вставленные — реально вставляются и UpdateStatus всех записей
становится равным usUnmodified.
Так что
with dxMemData1 do
begin
First;
while not eof do
begin
if UpdateStatus in [usInserted, usModified] then
begin
// изменена/добавлена
end
else
if UpdateStatus = usUnModified] then
begin
// не изменена
end;
Next;
end;
end
должно помочь.