Страница 1 из 1
Разумная Расстановка Транзакций
Добавлено: 13 янв 2005, 18:25
Гость
Разговор про InterBase 7.1 + Delphi
Прочитав на сайте информацию по транзакциям понял мало.
Во всех написанных мной программах транзакция была только одна, постоянно открытая. При внесении пользователем (или программой) изменений в базу я вызывал Commit. При нажатии пользователем Cancel - вызывал Rollback.
Почитав понял, что неправ.Как исправиться - не знаю.
Есть ли отработанные варианты, которые используются профессионалами.. Типа одна Read_Commited и одна Write - транзакция...
Добавлено: 13 янв 2005, 20:57
kdv
про
Типа одна Read_Commited и одна Write - транзакция...
это почти что смешно, или наоборот грустно.
Транзакция это блок изменений, которые либо применяются (все) по commit, либо отменяются (все) по rollback. Соответственно приложение должно управлять транзакциями с точки зрения бизнес-логики - перенести деньги с одного счета на другой, создать накладную, и т.п.
Поэтому например компонентов IBTransaction в приложении должно быть столько, сколько нужно. Под "нужно" понимается например - нужно читать справочники? Создаем транзакцию read read_committed и в ней читаем их все. Нужно смотреть список накладных? Создаем транзакцию read write read_committed и смотрим накладные. Нужно создать новую накладную? Открываем форму создания накладной, стартуем новую транзакцию, заполняем накладную, по OK делаем commit. Или - открываем форму, заполняем, по OK стартуем транзакцию, пихаем накладную в БД, делаем commit.
И так далее в таком духе.
Добавлено: 13 янв 2005, 23:56
Klyk
Девиз прост
"Не надо экономить на транзакциях"

)
К сожалению надо экономить
Добавлено: 14 янв 2005, 09:34
McArty
Klyk писал(а):Девиз прост
"Не надо экономить на транзакциях"

)
Длинная (долгая транзакция) это не есть хорошо.
После прочтения статьи "Жизненый цикл траназкций ", возникает вопрос - как задать в Delphi, транзакцию "Read committed, read only"?
Добавлено: 14 янв 2005, 10:11
kdv
мда. а
www.ibase.ru/devinfo/ibtrans.htm читал? а двойной клик на IBTransaction делал?
и потом, человек тебе пишет, что не надо экономить на транзакциях, т.е. не делать одну транзакцию на приложение, а ты ему про "долгую транзакцию". Где связь?
Добавлено: 14 янв 2005, 10:25
McArty
Sorry, с утра не проснулся

Как говорится - читайте мат.часть.