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

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

Ежесекундное обнавление данных [D6, IB6.x]


jen_bond ©   (2002-11-13 21:39:00) 

Подскажите в чем может быть моя ошибка.
У меня запущен таймер в нем происходит обновление данных транзакцией(commit).
Когда запущено одна копия приложение все работает нормально, когда
запускается паралельно еще одно вываливается ошибка
"deadlock update conflictd whith concurent update"
Что мне лучше использовать для оперативного обновления в данных(ежесекундно)
вместо transaction.commit


Sergey13   (2002-11-14 11:35:00) [1]

Странное желание комитить по таймеру. ИМХО таймер и транзакции только начинаются на одну букву - больше ничего похожего. Отсюда и проблемы с множеством сессий. Каждый комит надо соотнести с конкретной транзакцией. Интересно, а как ты откаты делаешь - тоже по таймеру? 8-)


Leran2002   (2002-11-14 09:45:00) [2]

А зачем тебе вообще таймер, все ведь совсем просто:
{---------------------------------------------------
TIBTransaction

property IdleTimer: Integer;
property OnIdleTimer: TNotifyEvent;
type TTransactionAction = (taRollback, // выполнить откат и закрыть связанные наборы данных
taCommit, // подтвердить транзакцию и закрыть связанные наборы данных
taRollbackRetaining, // выполнить откат и не закрывать связанные наборы данных
taCommitRetaining); // подтвердить транзакцию и не закрывать связанные наборы данных
property DefaultAction: TTransactionAction;

при IdleTimer>0 каждый раз через IdleTimer милисек. срабатывает обработчик
OnIdleTimer а также происходит действие заданное в DefaultAction, данное
действие применяется ко всем наборам которые используют данный компонент (TIBTransaction).
---------------------------------------------------}


KSergey   (2002-11-14 07:16:00) [3]

Ежесекундно транзакции коммитить? А это точно необходимо? Что-то сомнения разбирают. А начинаете вы их когда? Тоже ежесекундно?
Есть подозрение, что вы выбрали крутовастую транзакцию на весь набор данных, которая не дает редактировать запрос (начинать транзакции) другим процессам.
Тут что-то с идеей не то, похоже...


Alexandr   (2002-11-14 06:13:00) [4]

у тебя ошибка в 17 строке


Наверх

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