Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

TDataSetProvider сам делает Commit   Найти похожие ветки 

 
Sancho ©   (2004-09-14 15:58) [0]

Уважаемые мастера !
Подскажите решение следующей проблемы. Есть 3-хзвеная система Oracle 9i Release 1 -> DOA 3.4 (TOracleDataSet) -> TDataSetPrivider -> TClientDataSet. Вызываю TClientDataSet.ApplyUpdates все данные без ошибок отправляются в БД, но после этого транзакция в БД почему-то подтверждается. Пробовал в TDataSetPrivider.AfterUpdateRecord или TDataSetProvider.AfterApplyUpdates написать OracleSession1.Rollback транзакция все равно подтверждается. Единственное место где транзакцию получилось откатить это TOracleDataSet.AfterPost, но мне это не подходит т.к. данные в нескольких наборах и если изменения в одном из наборов невозможно записать в БД то в остальных наборах их так же надо отменить.


 
Dok_3D ©   (2004-09-15 10:54) [1]

А что за класс такой - TOracleDataSet ?
Нет ли там случайно свойства  AutoCommit = True ?


 
Romkin ©   (2004-09-15 13:01) [2]

Так он же сам ее открыл - сам и закроет :)
ТАк - правильно, ошибок нет - значит, все в порядке.
Если не надо, открывай транзакцию перед вкатыванием обновлений, тогда он ее не закроет. Скорее всего, OnBeforeApplyUpdates подойдет.


 
Erik1 ©   (2004-09-15 18:03) [3]

Не все равно закроет, только создаст свою. Тоесть получится вложеная транзакция. А Commit он и в африке commit, помоему вложеность таким образом неподерживается. Если хочеш работать с транзакциями нормально придется сменить компоненты на ODAC.


 
Sancho ©   (2004-09-16 09:21) [4]

Erik1 ©   (15.09.04 18:03) [3]

Не могли бы Вы уточнить следующее:
Я тут в нашел, что TDataSetProvider открывает одну транзакцию на все изменения передаваемые за один раз TClientDataSet"ом (один вызов TClientDataSet.ApplyUpdates). Если использовать ODAC (я так понял, что это Oracle Data Access Component, правильно ?), то можно будет контролировать транзакцию открываемую TDataSetProvider"ом ?


 
Erik1 ©   (2004-09-16 10:25) [5]

Да можно, он сделан аналогично BDE, даже CachedUpdate есть.


 
Sancho ©   (2004-09-16 12:00) [6]

Erik1 ©   (16.09.04 10:25) [5]
Спасибо, попробую.



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1118912020
Alias
2005-06-16 12:53
2005.07.11
Подайте идею как искать причину stack overflow


3-1117609765
ArkIv
2005-06-01 11:09
2005.07.11
FreeLibrary и try except ?


14-1118159506
iZEN
2005-06-07 19:51
2005.07.11
Sequence Diagram в UML2.0?


14-1118355696
Квест
2005-06-10 02:21
2005.07.11
Какие файлы и ключи реестра нужно сохранить при переустановке Вин


1-1118325530
Sicilla
2005-06-09 17:58
2005.07.11
Запуск таймера до создания формы