Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Транзакции в локальных базах данных [D7, MSAccess]


Zergling ©   (2003-04-08 13:13:00) 

День добрый уважаемые! В одной книжке вычитал, что локальные базы данных Paradox 9 поддерживают транзакции. Можно ли транзакции организовать для локальной базы данных Access через ADO. Пробовал произвести транзкцию через TADOConection, но не работает (не исключаю, что я что то делаю не так). Если Access не поддерживатет транзакции, то можно ли организховать, чтонибудь на подобие трнзакции. Пока у меня мысля такая: создать динамический массив типа Variant. Скопировать из строки тблицы-1 данные в этот массив (перед модификацией строки).
Если при работе с таблицей-2 возникает ошибка, то данные из динамического массива записываются в таблицу-1, тем самым восстанавливая предыдущие значения. Может есть более простой и гибкий способ. Посоветуйте пожалуйста! Заранее благодарен за любубю помощь.


Stas   (2003-04-08 13:41:00) [1]

А для каскадного обновления и удаления Access проводит транзакцию сам если установишь свзи между таблицами (схему данных)
P.S. Access (ядро Jet) это не локальная база, а клиент-сервер.


sniknik   (2003-04-08 13:21:00) [2]

> Если Access не поддерживатет транзакции
обижаеш! для Access

Инструкция TRANSACTION
Используется для запуска и завершения явных транзакций.

Синтаксис
Запускает новую транзакцию.

BEGIN TRANSACTION

Заканчивает транзакцию путем завершения всей работы, выполненной в ходе транзакции.

COMMIT [TRANSACTION | WORK]

Заканчивает транзакцию путем свертывания всей работы, выполненной в ходе транзакции.

ROLLBACK [TRANSACTION | WORK]

Дополнительные сведения
Автоматический запуск транзакции невозможен. Чтобы начать транзакцию, ее необходимо явно запустить с помощью инструкции BEGIN TRANSACTION.

Допускается пять уровней вложения транзакций. Чтобы запустить вложенную транзакцию, воспользуйтесь инструкцией BEGIN TRANSACTION в контексте существующей транзакции.

Для присоединенных или связанных таблиц транзакции не поддерживаются.


Наверх

Титульная страница Поиск, карта сайта Написать письмо