Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Открытие/закрытие транзакции


Страницы:   1 2

мини-кодер ©   (2008-09-03 17:42:00) 

БД Oracle, компоненты доступа DOA
Как с помощью TOracleSession открыть и закрыть транзакцию?
Нашел флаг InTransaction, но он только для чтения.


Игорь Шевченко   (2008-09-05 12:39:00) [1]


> У БДЕ скорее всего какой-нить DbiCommit (такой вроде префикс
> там?) внутрях вызывается независимо от желания пользователя.
>


зависимо от желания. Это желание прописывается в настройках алиаса


evvcom   (2008-09-05 12:16:00) [2]

там CachedUpdates, в одаке такая проперть тоже есть, но это не коммит серверный. У БДЕ скорее всего какой-нить DbiCommit (такой вроде префикс там?) внутрях вызывается независимо от желания пользователя.


Petr V. Abramov   (2008-09-05 12:04:00) [3]


> evvcom ©   (05.09.08 10:23) [31]

и в BDE по-моему какие-то похожие проперти были


evvcom   (2008-09-05 10:23:00) [4]

Есть минутка, поясню про ODAC. В TOraSession и TOraDataSet есть проперть AutoCommit со значением по дефолту True. В этом случае компонент действительно ведет себя как ты описываешь, вот только поведение конкретной реализации какого-то компонента еще не говорит о том, что точно так же ведет себя и сервер. Где-то в недрах своего кода компонент ЯВНОвызывает Commit после любого изменения. А ты поставь AutoCommit в False и будешь разочарован в своей былой уверенности.


evvcom   (2008-09-05 08:53:00) [5]


> Медвежонок Пятачок ©   (04.09.08 09:01) [17]
>
> > Медвежонок Пятачок ©   (03.09.08 18:01) [7]
>
> да
>
> Не да, а нет.
> Если транзакциями явно не управляют, то каждый SomeQuery.
> ExecSQL стартует и коммитит транзакцию.
> Она, неявно начавшись, не продолжается пока не будет вызван
> явный коммит/роллбак.


Ты не прав.


> Медвежонок Пятачок ©   (04.09.08 10:11) [25]
>
> Кто ещё?
>
> bde,ado,odak .,......
>

И с ODAC (заметь не odak) ты тоже погорячился


Johnmen   (2008-09-04 13:39:00) [6]


> в чем именно?

в [17]

> будут последовательно стартованы три транзации.а не одна

Где про это можно почитать?


Медвежонок Пятачок   (2008-09-04 10:48:00) [7]

Берем бде, транзакциями не управляем.
выполняем подряд три вызова экзекsql.
будут последовательно стартованы три транзации.
а не одна


Медвежонок Пятачок   (2008-09-04 10:47:00) [8]

в чем именно?


Johnmen   (2008-09-04 10:44:00) [9]


> bde,ado,odak .,......

Ну с бде ты погорячился.


Медвежонок Пятачок   (2008-09-04 10:11:00) [10]

Кто ещё?

bde,ado,odak .,......


Johnmen   (2008-09-04 09:56:00) [11]


> не только он

Кто ещё?


Игорь Шевченко   (2008-09-04 09:50:00) [12]


> Если отвлечься от специфики вопроса.


если принимать во внимание специфику вопроса, то у автора надо спросить - а нафига ему это ?


Медвежонок Пятачок   (2008-09-04 09:46:00) [13]

В оракле нет

Можно и так сказать. Если отвлечься от специфики вопроса.


Игорь Шевченко   (2008-09-04 09:43:00) [14]

В оракле нет оператора "начать транзакцию". Транзакция неявно начинается с первого оператора, изменяющего данныеи завершается операторами COMMIT или ROLLBACK.


Медвежонок Пятачок   (2008-09-04 09:30:00) [15]

Это что, так DOA устроен?

не только он


Johnmen   (2008-09-04 09:07:00) [16]


> Медвежонок Пятачок ©   (04.09.08 09:01) [17]

Это что, так DOA устроен?


Sergey13   (2008-09-04 09:05:00) [17]

> [0] мини-кодер   (03.09.08 17:42)

В Оракле транзакция стартует со стартом сессии. Ее можно подтверждать или откатывать, после чего сразу как бы стартует новая. Для более сложного руления существуют точки отката (это то про что у тебя в [3]). Неявное завершение транзакции вызывает любой DDL запрос и завершение сессии.
Т.е. работа должна строиться так - после каждого законченногодействия по модификации БД делай подтверждение. Хотя теоретически можно подтвердить/откатить и всю сессию, но лучше этого не делать. 8-)


Медвежонок Пятачок   (2008-09-04 09:01:00) [18]

> Медвежонок Пятачок ©   (03.09.08 18:01) [7]

да


Не да, а нет.
Если транзакциями явно не управляют, то каждый SomeQuery.ExecSQL стартует и коммитит транзакцию.
Она, неявно начавшись, не продолжается пока не будет вызван явный коммит/роллбак.


Petr V. Abramov   (2008-09-03 23:38:00) [19]


> Медвежонок Пятачок ©   (03.09.08 18:01) [7]

да


> мини-кодер   (03.09.08 17:42)  

насколько я помню, commit и rollback для завершения, для старта ниче не надо, оно не BDE


Медвежонок Пятачок   (2008-09-03 18:53:00) [20]

Нашел флаг InTransaction, но он только для чтения.

не могет такого быть, чтобы не было методов старта/коммита/роллбака


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо