Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
msfaq
Зарегистрирован: 11.03.2004 Сообщения: 19
|
Добавлено: Пн Авг 09 2004 15:49 Заголовок сообщения: транзакции |
|
|
Как поступить? Из одной хранимой процедуры вызывается другая. Обе вносят изменения в БД. Как применить транзакции. Только в первой процедуре? Или еще во второй? (тогда получится в одной транзакции осуществляется другая..). Кто знает? |
|
Вернуться к началу |
|
 |
wildwind
Зарегистрирован: 03.02.2004 Сообщения: 268 Откуда: Москва
|
Добавлено: Вт Авг 10 2004 14:07 Заголовок сообщения: |
|
|
В общем случае управлять транзакциями должен клиент.
А в твоем конкретном случае это зависит от бизнес-логики приложения. Требует ли она, чтобы все изменения внесенные и первой и второй процедурой, были согласованными? |
|
Вернуться к началу |
|
 |
msfaq
Зарегистрирован: 11.03.2004 Сообщения: 19
|
Добавлено: Вт Авг 10 2004 15:54 Заголовок сообщения: |
|
|
Да! Нельзя чтобы внеслись изменения только из 1 или только из 2 процедуры. Просто если транзакция начинается в первой и заканчивается в первой процедуре, то попадет ли в нее 2 процедура, вызывающаяся внутри транзакции в первой процедуре.
Или нужно в каждой процедуре свою транзакцию? Поясните пожалуйста. |
|
Вернуться к началу |
|
 |
wildwind
Зарегистрирован: 03.02.2004 Сообщения: 268 Откуда: Москва
|
Добавлено: Вт Авг 10 2004 18:01 Заголовок сообщения: |
|
|
Вызываешь 1-ю процедуру (которая вызывает 2-ю), она отрабатывает, потом явно делаешь commit. На клиенте. Если возвращает ошибку, делаешь rollback. Во многих случаях это может гарантировано делать клиентская библиотека. Ищи в настройках параметр AUTOCOMMIT или что-то похожее.
Ты бы хоть написал, что за БД у тебя, какой интерфейс к ней, и на чем пишешь (вообще-то так принято по умолчанию).
Вставлять commit в процедуру не нужно, даже в первую; потому что она тоже может вызываться как часть какой-то транзакции (как у тебя 2-я). |
|
Вернуться к началу |
|
 |
Andy-C
Зарегистрирован: 09.12.2003 Сообщения: 73 Откуда: Нальчик
|
Добавлено: Чт Авг 19 2004 10:42 Заголовок сообщения: ibase.ru + Грабер |
|
|
 _________________ До onlina Andrew C. |
|
Вернуться к началу |
|
 |
|