-
БД Oracle, компоненты доступа DOA
Как с помощью TOracleSession открыть и закрыть транзакцию?
Нашел флаг InTransaction, но он только для чтения.
-
Искать дальше...
-
SavePoint/ RollbacktoSavePoint?
-
Английский знаешь?
-
Точка сохранения/Откатить к точке сохранения?
-
Ага
-
так [2] - это то, что мне нужно?
Насколько я понимаю, транзакция открывается автоматически, если не открыта до этого и продолжает быть открытой, пока не произойдет комит или ролбек?
Поправьте, плиз, потому как немного плаваю в этих вопросах
-
Насколько я понимаю, транзакция открывается автоматически, если не открыта до этого и продолжает быть открытой, пока не произойдет комит или ролбек?
неа
-
тогда как?
-
BeginTransaction или что то на подобие (Open, Start, bEgin, нАчать) существует?
-
нет
-
значит ищи подобные методы в других компонентах TOracleXXX18+
-
тогда как?
Если неявно начата, то сразу после выполнения обращения с клиента так же неявно коммитится
-
> значит ищи подобные методы в других компонентах TOracleXXX18+
ни в TOracleDataset, ни в TOracleQuery нет никаких особых методов открытия закрытия транзакции. Разве что можно указать CommitOnPost, для датасета.
То есть поведение транзации(тип транзакции, уровень изоляции) определяется в контексте транзакции.
> Если неявно начата, то сразу после выполнения обращения с
> клиента так же неявно коммитится
Вопрос на засыпку: а как явно начать транзакцию? SavePoint?
-
> определяется в контексте транзакции.
сорри, определяется в контексте сессии
-
Нашел флаг InTransaction, но он только для чтения.
не могет такого быть, чтобы не было методов старта/коммита/роллбака
-
> Медвежонок Пятачок © (03.09.08 18:01) [7]
да
> мини-кодер (03.09.08 17:42)
насколько я помню, commit и rollback для завершения, для старта ниче не надо, оно не BDE
-
> Медвежонок Пятачок © (03.09.08 18:01) [7]
да
Не да, а нет.
Если транзакциями явно не управляют, то каждый SomeQuery.ExecSQL стартует и коммитит транзакцию.
Она, неявно начавшись, не продолжается пока не будет вызван явный коммит/роллбак.
-
> [0] мини-кодер (03.09.08 17:42)
В Оракле транзакция стартует со стартом сессии. Ее можно подтверждать или откатывать, после чего сразу как бы стартует новая. Для более сложного руления существуют точки отката (это то про что у тебя в [3]). Неявное завершение транзакции вызывает любой DDL запрос и завершение сессии.
Т.е. работа должна строиться так - после каждого законченного действия по модификации БД делай подтверждение. Хотя теоретически можно подтвердить/откатить и всю сессию, но лучше этого не делать. 8-)
-
> Медвежонок Пятачок © (04.09.08 09:01) [17]
Это что, так DOA устроен?