Предпочтительный способ написания приложений базы данных Delphi с транзакции и компоненты с поддержкой данных

Каков предпочтительный способ написания приложений базы данных Delphi с использованием транзакций, а также компонентов, учитывающих данные?

Я должен написать клиентское приложение, которое обращается к таблицам InnoDB и выполняет некоторые подробные действия внутри транзакций. Проведя некоторое исследование транзакций (с общей точки зрения), я смиренно прихожу к выводу, что компоненты, не поддерживающие данные, и код SQL вручную будут "

  • Connection.StartTransaction
  • Master.Append, затем Master.Post, затем Master.Edit (так что основной набор данных имеет первичный ключ с автоинкрементом, и теперь его можно редактировать)
  • Показать форму редактирования модально, в которой пользователь заполняет основные записи, а также добавляет некоторые подробные записи, используя другую форму.
  • Если пользователь щелкнет OK, приложение выполнит Master.Post и Connection.Commit. Если пользователь нажмет кнопку «Отмена», приложение выполнит Connection.Rollback.

Я знаю, что транзакции должны быть как можно короче, но вы можете видеть выше, что транзакция длится ровно настолько, насколько быстро пользователь заполняет форму. .

Если бы я использовал компоненты, не поддерживающие данные, я бы сделал пользовательские SQL-запросы для вставки на основе пользовательского ввода, а затем выполнял бы SQL-запросы между StartTransaction и Commit. Так я могу добиться очень короткой сделки.

РЕДАКТИРОВАТЬ 2

Благодарю всех вас за любезное участие. Я выбираю ответ от vcldeveloper, потому что это наиболее близкое решение моей текущей потребности.

9
задан Cocin 2 October 2010 в 15:24
поделиться