![]() |
|
|
![]()
|
|
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Настройки тразакции:
DefaultAction: TACommit; параметры: read_committed rec_version nowait IdleTimer = 0; В IbDatabase эта же транзакиция стоит на default. Хочу понять в какой именно момент происходит "коммит" у данной транзакции? Судя по настройкам должен быть сразу, но к примеру при такой последовательности запросов: 'Create table TEST(a integer)' И потом сразу: 'select * from TEST' - этот запрос выдаёт ошибку о том, что таблица ещё не существует. Но если после верхнего сделать "Commit", то второй срабатывает нормально. Запрос делаю через TIBQueryу кт в транзакциях указана вышеописанная. |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: нет Всего: 34 |
Насколько я знаю создание, удаление таблиц, БД, триггеров и.т.д. не может быть по определению внутри одной транзакции. Для них нужно делать отдельные. А под 1 транзакцией понимается все от open..Close, Exec..Close. Так что лучше сам определяй где и когда тебе нужно делать comit и rollback!
|
|||
|
||||
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Тоесть предлагаешь DefaultAction ставить на None и выполнять всё тоже самое?
P.S> Где можно прочитать инфу о том, что определено в рамках одной транзакции. К примеру добавление полей определено в рамках одной транзакции? |
|||
|
||||
| Mephisto |
|
||||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: нет Всего: 34 |
Оставь как есть. Просто когда закрываешь query он будет делать действие по умолчанию. Лично я делаю все явно. ;)
Читай литературу по Interbase. Буквари по Delphi такие детали думаю не содержат! |
||||
|
|||||
| Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 2 Всего: 83 |
Нельзя в одной транзакции менять медаданные и тут же выполнять запросы, которые используют эти метаданные:
alter table add field1 int update table set field1 = 10 -------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: нет Всего: 34 |
Golden Hands, и я о чем...
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |