TUniQuery самостоятельно устанавливает AutoCommit в True после Open

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Закрыто
VadimMest
Сообщения: 17
Зарегистрирован: Чт 13 ноя 2014 17:43

TUniQuery самостоятельно устанавливает AutoCommit в True после Open

Сообщение VadimMest » Сб 09 июл 2016 12:59

Добрый день.

База данных - Firebird 2.5
UniDAC 6.0.1

У TUniConnection указано AutoCommit := False;
У TUniQuery присваиваю
Transaction (RO)
UpdateTransaction (RW) (Это глобальная транзакция)

CachedUpdates := True;
Options.AutoPrepare := True;
AutoCommit := False;

у TUniQuery оба свойства (Transaction и UpdateTransaction) указывают на одну и ту же глобальную транзакцию.
после TUniQuery.Open свойство AutoCommit равно True,
TUniQuery.ApplyUpdates стартует какую то новую транзакцию и коммитит её, данные изменены в базе, а мне нужно сделать все в одной транзакции.

Почему TUniQuery считает что мне нужен AutoCommit и почему не смотря а то что UpdateTransaction указана стартует и коммитится какая то новая транзакция ?
Как провести изменения в рамках одной глобальной транзакции?

UniQuery1.Transaction := UniTransaction2;
UniQuery1.UpdateTransaction := UniTransaction2;
UniTransaction1.StartTransaction;
UniTransaction2.StartTransaction;

UniQuery1.open;
UniQuery1.Edit;
UniQuery1.FieldByname('status').AsInteger := UniQuery1.FieldByname('status').AsInteger + 1;

UniQuery1.Post;
UniQuery1.ApplyUpdates();// После этой процедуры данные в базе изменяются, то есть изменены в какой то отдельной транзакции.
UniQuery1.CommitUpdates;
UniQuery1.Close;
UniTransaction2.Commit;
UniTransaction1.Commit;


Спасибо
Вадим Мещеряков

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: TUniQuery самостоятельно устанавливает AutoCommit в True после Open

Сообщение ViktorV » Ср 13 июл 2016 09:15

К сожалению мы не смогли воспроизвести указанное вами поведение на последней версии UniDAC 6.3.13.
Пожалуйста, скачайте последнюю версию UniDAC (на данный момент UniDAC 6.3.13) и проверьте воспроизводится ли на ней указанное вами поведение. Если это не поможет в решении проблемы, пожалуйста, составьте и вышлите на viktorv*devart*com небольшой пример демонстрирующий указанное вами поведение, включающий скрипты для создания объектов БД.

Закрыто