C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Проблемы или с IBase или с FIBPlus, Транзакция видит не все изменения
Anry
  Отправлено: 14.10.2003, 10:57


Дежурный стрелочник

Группа: Участник
Сообщений: 56



Имеем таблицу данных документа. Добавляем запись, а потом удаляем ее. После этого делаем коммит транзакции на обновление. При этом добавленная запись не удаляется. Если вместо удаления сделать изменение только что добавленной записи, то они также теряются (изменения) после Commit'а. В чем фишка???
Та же самая хня была и с IBX.

Anry
Отправлено: 14.10.2003, 12:13


Дежурный стрелочник

Группа: Участник
Сообщений: 56



Разобрался. Оказывается при добавлении или редактировании записи в FIBDataSet, транзакция на обновление стартует и сразу подтверждается. Что самое интересное, при удалении записи состояное транзакции не изменяется.
Автостарт UpdateTransaction удалось отключить, а как то же самое сделать с Commit (свойство AutoCommit отключено, но не помогает).
Anry
Отправлено: 14.10.2003, 13:27


Дежурный стрелочник

Группа: Участник
Сообщений: 56



Разобрался. Это я тормоз. Все теперь работает. Спасибо Anry за исчерпывающие ответы. biggrin.gif

Отредактировано Anry — 14/10/2003, 14:30
** pasha
Отправлено: 14.10.2003, 13:29


Не зарегистрирован







QUOTE

Оказывается при добавлении или редактировании записи в FIBDataSet, транзакция на обновление стартует и сразу подтверждается


Вы сами можете этим управлять.

Если ставите у pFIBDataSet1 у свойства Options poSrartTransaction в
true, то транзакция стартует сама, если в false, то стартуете вы
pFIBTransaction1->StartTransaction();

если у pFIBDataSet1 стоит свойство AutoCommit = true; то транзакция
подтверждается автоматически, если AutoCommit = false;
то подтверждаете вы сами: pFIBTransaction1->CommitRetaining();
или pFIBTransaction1->Commit(); (без переоткрытия)


Вернуться в Работа с базами данных в C++Builder