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

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

Две транзакции [IB5.x]


AGAMEMNUM ©   (2003-08-12 12:39:00) 

В форуме рекомендуют заводить две транзакции - пишущую и читающую, только не пишут как это сделать... есть IBSQL, IBDatabase, IBTransaction - куда тут еще одну транзакцию встроить и как с ней работать?


Zacho   (2003-08-12 13:14:00) [1]


> AGAMEMNUM © (12.08.03 12:52)

Самый "правильный" способ - "вправить" исходники IBX, а именно метод SetTransaction и т.д., как-то давненько такое делал, уже смутно помню. Возможно, удастся ограничиться написанием наследника TIBCustomDataSet.
Еще способ (но весьма гемморойный) - CachedUpdates:=true; в DeleteSQL, ModifySQL, InsertSQL пишем какие-нибудь бессмысленные, но работоспособные запросы (типа SELECT 1 FROM RDB$DATABASE), берем 3 TIBSQL, которые подключаем к другой транзакции и в которых пишем "нормальные" запросы, а в обработчике события BeforePost присваеваем этим IBSQL параметры и запускаем запросы.
1-й способ - более трудоемкий, но сделать достаточно один раз, а потом постоянно пользоваться своим компонентом.
2-й способ - не требует разбираться в исходниках IBX, зато постоянно придется писать кучу кода в приложениях.


Alexandr   (2003-08-12 13:03:00) [2]

можно и в IBX ввернуть 2 транзакции, если уже не ввернули.
искать тут
fibplus.com.ua


AGAMEMNUM   (2003-08-12 12:53:00) [3]

а работать с двумя как и с одной я думаю - open да commit или есть особенности?


AGAMEMNUM   (2003-08-12 12:52:00) [4]

...TIBDataSet сделать так, что бы чтение происходило в контексте одной транзакции, а модификация данных - в контексте другой ?вот именно это...


Zacho   (2003-08-12 12:49:00) [5]

Можно и одной транзакцией обойтись. Все от задачи зависит. Опять же, непонятно, что именно тебя интересует: как вообще работать с несколькими транзакциями, или как в TIBDataSet сделать так, что бы чтение происходило в контексте одной транзакции, а модификация данных - в контексте другой ?


AGAMEMNUM   (2003-08-12 12:48:00) [6]

а на IBExpress такое не забацать? мне на них надо... хотя описание кинь плиз, посмотру что за зверь... art_agamemnum@mail.ru


Zorik   (2003-08-12 12:43:00) [7]

Такая возможность есть в компонентах FibPlus. Если интересует - могу скинуть описание.


Наверх

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