powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с двумя транзакциями
15 сообщений из 15, страница 1 из 1
Работа с двумя транзакциями
    #32073866
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно стал работать с Интербейсом через IB - компоненты. В программе работаю двумя транзакциями: одна - для чтения данных, другая - для сохранения. Так вот, когда сохраняю данные через вторую транзакцию(делаю Commit, данные реально появляются в таблице), переоткрываю нужную таблицу через первую транзакцию - данных нет. Если работать через одну транзакцию - все нормально, только приходится переоткрывать все таблицы (при Commit - все закрывается), а их довольно много. Кто-нибудь что-нибудь посоветует?
...
Рейтинг: 0 / 0
Работа с двумя транзакциями
    #32073912
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тебе вообще транзакции?????
Так нельзя работать? :))
...
Рейтинг: 0 / 0
Работа с двумя транзакциями
    #32073926
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygra - "старый солдат", слушай его, он дело говорит. Транзакции - это только для тех, кто знает, что это такое и как с ними работать.
...
Рейтинг: 0 / 0
Работа с двумя транзакциями
    #32073941
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как гарантированно сохранить данные используя серверные процедуры?
...
Рейтинг: 0 / 0
Работа с двумя транзакциями
    #32073995
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что значит гарантированно?

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

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

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

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

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

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

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


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