Документація Database Tour Зміст Індекс

Транзакції

Початок Попередній Наступний

Транзакція (в її спрощеному розумінні) - це набір змін в даних, який повинен бути виконаний в цілому. Commit записує зміни, зроблені після початку транзакції, в базу даних, а rollback відміняє ці зміни.

Контроль транзакцій робиться по-різному в залежності від движка баз даних, що використовується:

ADO, BDE

По замовчанню, Database Tour використовує авто-commit, тобто commit робиться автоматично при будь-яких змінах в даних.

Щоб вручну виконувати транзакції, використовуйте меню База | Транзакції або кнопки 'Почати Транзакцію або Зафіксувати Зміни' та 'Відмінити Зміни'. Якщо ви стартуєте транзакцію вручну, авто-commit відключається і ви повинні викликати commit або rollback вручну за допомогою відповідних кнопок. Після того, як ви зробите commit або rollback для ручної транзакції, авто-commit включається знову.

Interbase

Кожна операція DDL або DML у відкритій базі даних автоматично стартує транзакцію, для якоїпотрібно буде вручну робити commit або rollback, використовуючи меню База | Транзакції або кнопки Зафіксувати Зміни та Відмінити Зміни. Майте на увазі, що зміни в одній відкритій базі даних виконуються в контексті лише однієї транзакції (хоча сервер Interbase і дозволяє більшу їх кількість).

Зауваження

1) При закритті БД з незавершеною транзакцією програма запитує користувача, слід робити commit чи rollback.

2) Виконання транзакцій та їх завершення для різних типів баз даних можуть проходити дещо по-різному. З цього приводу читайте документацію вашої СУБД.

Ізоляція транзакцій

Якщо відкрито базу даних і ще не запущено транзакцію, ви можете вибрати рівень ізоляції транзакцій (меню База | Ізоляція транзакцій), який встановлює правила відображення даних при роботі кількох клієнтів з однією БД:

-dirty read - в поточній транзакції видимі всі зміни, внесені іншими транзакціями, навіть не підтверджені;
-read comitted - конкуруючі транзакції бачать тільки підтверджені зміни;
-repeatable read - в транзакції видимі ті зміни, що були в базі на момент початку цієї транзакції.

На додачу до цих рівнів ізоляції, в підключеннях ADO можуть використовуватися також наступні:

-Chaos
-Browse
-Cursor Stability
-Serializable, Isolated
-Unspecified

Не всі рівні ізоляції транзакцій доступні для різних типів БД - напр., для локальних БД, відкритих через BDE, можна встановити тільки 1 рівень: незафіксовані зміни.