Страница 1 из 1

Уровень изоляции транзакции в TSQLTransaction

СообщениеДобавлено: 24.05.2019 11:05:55
AndrewM
Добрый день. Подскажите, пожалуйста, правильный формат записи в TSQLTransaction.Params (из SQLdb) уровня изоляции транзакции (например, read commited). Работа совместно с Firebird. Такое впечатление, что установленная по умолчанию работает как snapshot - изменения подтвержденные по commit в другой транзакции видны только после переоткрытия читающей транзакции (переоткрытие только запроса не помогает)

Re: Уровень изоляции транзакции в TSQLTransaction

СообщениеДобавлено: 26.05.2019 20:44:08
zoltanleo
AndrewM писал(а):Подскажите, пожалуйста, правильный формат записи в TSQLTransaction.Params (из SQLdb)

Я не припомню, чтобы на этом форуме кто-то работал со встроенными лазаровскими компонентами доступа к FB. Есть альтернативные проверенные клоны от IBX/FIB+ (например, дельфевый порт на Лазарус IBX или его допиленный вариант а-ля FIB+: IBX от *Rik*).

И вдогонку, можно использовать UIB или Zeos (посмотри тут)

Re: Уровень изоляции транзакции в TSQLTransaction

СообщениеДобавлено: 27.05.2019 06:54:20
Vadim
AndrewM
Установленная по умолчанию находится в TSQLTransaction.Action. Посмотрите, что там у Вас стоит...

Re: Уровень изоляции транзакции в TSQLTransaction

СообщениеДобавлено: 27.05.2019 09:37:49
AndrewM
Vadim, в Action прописано действие для завершения транзакции по умолчанию. Речь немного о другом: есть две транзакции читающая и пишущая. После явного подтверждения пишущей по commit переоткрываю запрос, открытый в читающей транзакции. И он не видит изменения в таблице, сделанные в пишущей транзакции. Изменения становятся видны только после того как закрыть и открыть читающую транзакцию, а не только запрос.
Zoltanleo, благодарю. Пожалуй, воспользуюсь Вашим советом и заменю компоненты (попробовал в ZEOS - работает - при установке уровня изоляции в read_commited, изменения в читающей транзакции видны после переоткрытия запроса, а не всей читающей транзакции). ZEOS привлекает возможностью работать не только с Firebird.