580_____________________________________________Глава 10

После всех установок в редакторе щелкните на ОК и введенные вами установ-
ки заполнят значения свойств DatabaseName, AliasName, DriverName, Paramsn
KeepConnection.

Свойство Connected (соединение) совместно со свойством KeepConnection
управляют процессом соединения компонентов с базой данных. Если КеерСоппее-
tion равно true, то соединение с базой данных постоянное даже при отсутствии от-
крытых наборов данных. Если же KeepConnection равно false, то для регистрации
на сервере надо устанавливать Connected в true при каждом открытии таблицы.

Свойство Translsolation определяет уровень изоляции транзакции. Это свой-
ство может иметь значения:

tiDirtyRead      Позволяет читать все текущие изменения, проводимые дру-
гими транзакциями до их фиксации

tiReadCommit    Позволяет читать только зафиксированные изменения, про-,
водимые другими транзакциями. Это значение принято по
умолчанию

tiRepeatableRead После начала транзакции не позволяет читать даже под-
твержденные изменения, проводимые другими транзакция-
ми в прочитанных данных. Следовательно, при повторном
прочтении на протяжении данной транзакции той же запи-
си будут получены прежние результаты, даже если другие
транзакции их уже изменили

Если обратиться к сформулированным в предыдущем разделе проблемам, воз-
никающим при совместной работе транзакций с одними и теми же данными, то
можно заметить, что только значение tiRepeatableRead исключает проблемы чте-
ния незафиксированных изменений, неповторяемого чтения данных и появления
фантомных записей. Принятый по умолчанию уровень tiReadCommit исключает
только проблему неповторяемого чтения данных.

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

Translsolation	InterBase	Oracle	Sybase & Microsoft
tiDirtyRead	Read commited	Read commited commited	[Read
tiReadCommit	Read commited	Read commited	, Read commited
tiRepeatableRead	Repeatable Read	Repeatable Read (READ ONLY)	i Error (не поддерживается)

Начало транзакции осуществляется методом StartTransaction компонента
Database. При этом начинающаяся транзакция использует текущее значение
свойства Translsolation для определения уровня изоляции.

Завершается транзакция методом Commit, фиксирующим ее результаты в
базе данных. Метод Rollback можно использовать для «отката» назад при неуда-
че — этот метод отменяет все операции с базой данных, выполненные после по-
следнего выполнения метода Commit.

Таким образом, программа работы с данными должна строиться по следующей
схеме: