Использую Lazarus 1.2.2, FPC 2.6.4 в WinXP. БД SQLite3.
На форме есть грид, источник данных TDataSource, датасет TSQLQuery и TDBNavigator.
Задача - определить статус датасета при добавлении, изменении и удалении записи.
Проблема заключается в том, что мне не удается отловить состояние TSQLQuery usDeleted.
При добавлении или изменении записи проблем нет, статус датасета, как и положено, возвращается usInserted, usModified.
При нажатии на кнопку Удалить, и подтверждения удаления записи, запись из грида исчезает, ожидаю статуса usDeleted, но статус датасета возвращается usUnmodified.
Не могу понять, почему такое происходит. Отладчик StepInto в UpdateStatus почему-то не заходит, на breakpoint в TCustomBufDataset.UpdateStatus отладчик не останавливается.(???) Подскажите, пожалуйста, как правильно определить состояние TSQLQuery при добавлении, изменении и удалении записи.
- Код: Выделить всё
procedure TForm1.dbnav1Click(Sender: TObject; Button: TDBNavButtonType);
begin
if button = nbDelete then
begin
case qry1.UpdateStatus of
usUnmodified : ShowMessage('Unmodified');
usModified : ShowMessage('Modified');
usInserted : ShowMessage('Inserted');
usDeleted : ShowMessage('Deleted');
end;
end;
end;