• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Delphi - ADOQuery - Access

  • Автор темы Alex2
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alex2

Я работаю в Delphi7 с Access, компоненты ADO.
Мне нужно организовать интерфейс: изменение данных в гриде.
Это не проблема... Но возле таблицы должна стоять кнопка
Cancel - отмена всех изменений и закрытие формы.
Как обработать эту кнопку? Как отменить сделанные изменения в гриде?
Ведь все изменения сразу(или почти сразу) отображаются в базе?!
Может, у TADOQuery есть какое-то свойство, чтобы данные не обновлялись в базе.
А потом делать обработку на AfterPost --> DataSet.ApplyUpdates ???

Как быть?
 
B

Barmutik

Делать перед показам BeginTrans и потом по кнопке ОК - CommitTrans, а по Cancel - RollbackTrans
 
?

????

Alex2
Только это черевато последствиями - пользователь начал транзакцию и ушёл покурить не нажав кнопку ОК. Вот и есть блокировка записи (а если криво спроектированно - таблицы). Второй юзер вышел покурить... 3 ...4 ...5 Шестой потянулся к телефону высказать админу всю свою злось по поводу работы системы.
 
B

Barmutik

Мммм.. а почему бклкировка ???

В зависимости от того какой усновлен уровень изоляции при создании транзакций...

Можно настроить так что остальные пользователи будут работать со слепком базы на момент начала транзакции ...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!