Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с двумя транзакциями / 15 сообщений из 15, страница 1 из 1
29.11.2002, 10:56
    #32073866
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
Недавно стал работать с Интербейсом через IB - компоненты. В программе работаю двумя транзакциями: одна - для чтения данных, другая - для сохранения. Так вот, когда сохраняю данные через вторую транзакцию(делаю Commit, данные реально появляются в таблице), переоткрываю нужную таблицу через первую транзакцию - данных нет. Если работать через одну транзакцию - все нормально, только приходится переоткрывать все таблицы (при Commit - все закрывается), а их довольно много. Кто-нибудь что-нибудь посоветует?
...
Рейтинг: 0 / 0
29.11.2002, 11:35
    #32073912
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
А зачем тебе вообще транзакции?????
Так нельзя работать? :))
...
Рейтинг: 0 / 0
29.11.2002, 11:42
    #32073926
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
tygra - "старый солдат", слушай его, он дело говорит. Транзакции - это только для тех, кто знает, что это такое и как с ними работать.
...
Рейтинг: 0 / 0
29.11.2002, 11:51
    #32073941
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
А как гарантированно сохранить данные используя серверные процедуры?
...
Рейтинг: 0 / 0
29.11.2002, 12:37
    #32073995
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
А что значит гарантированно?

Открой в процедуре транзакцию. В конце - закрой. Вот и все.
Или ты как-то по-другому сохраняешь? Тогда как?
...
Рейтинг: 0 / 0
29.11.2002, 12:51
    #32074012
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
У меня приблизительно так:
try
SP1.ExecProc; //TStoredProc
DMForm.IBTransWork.Commit;{ post;}
//Транзакция, через которую все работает
except
DMForm.IBTransWork.Rollback; {CANCEL;}
Application.MessageBox()
end;

Может быть это должно быть не так?
...
Рейтинг: 0 / 0
29.11.2002, 15:51
    #32074137
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
Я вот не помню - можно ли в InterBase в процедуре открывать транзакцию.

Если нет - то тебе перед исполнением SP !!! только нужно ее открыть, а после - закрыть (commit или rollback). И все, а зачем транзакция на чтение? Да и смотря какая процедура - если меняешь значения в одной таблице за раз, то тут транзакция вообще не нужна
...
Рейтинг: 0 / 0
30.11.2002, 12:33
    #32074320
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
Две транзакции - одна на чтение, одна на запись, если их правильно настроить позволяют до минимума снизить вероятность возникновения deadlock и экономить ресурсы сервера.
...
Рейтинг: 0 / 0
30.11.2002, 12:39
    #32074322
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
Ну, все уверяют, что у InterBase нет deadlock-ов. :))

И с чего бы это транзакция на чтение увеличивала производительность? Не слышал о таком. Слышал об обратном.

А я вот прочитал - есть транзакции в InterBase , так что не надо париться с ними из приложения - в процедуре, если надо, открываешь транзакцию, меняешь - добавляешь - удаляешь чего надо, потом закрываешь транзакцию. Вот и все. Зачем еще из вне транзакция - не понятно. Сто лет назад так делали :))
...
Рейтинг: 0 / 0
02.12.2002, 09:44
    #32074483
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
Так в том и соль, что я именно так и делаю, а переоткрываю таблицы на чтение из другой транзакции - никаких изменений не видать.
...
Рейтинг: 0 / 0
02.12.2002, 10:54
    #32074514
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
Ты уж напиши с исходниками, как делаешь, а то не понятно.

Может и понятно станет, почему не видишь изменения.

И Зачем на чтение открывать транзакцию??????????
...
Рейтинг: 0 / 0
02.12.2002, 14:35
    #32074637
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
А все оказалось просто.
В IBX компонентах транзакции стартуют с уровнем изоляции concurrency. Поставил в параметрах IBTransaction параметр read_committed - и все стало нормально.
Всем большое спасибо
...
Рейтинг: 0 / 0
02.12.2002, 15:29
    #32074685
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
Я так и не понял - зачем тебе вообще транзакции на клиенте?
...
Рейтинг: 0 / 0
02.12.2002, 16:15
    #32074719
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
А рссскажите, как работать с IBX без транзакций?
...
Рейтинг: 0 / 0
03.12.2002, 10:44
    #32074991
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя транзакциями
А что, они обязательно нужны? Без них никак совсем? Даже не открывается Query?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с двумя транзакциями / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]