![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ежесекундное обнавление данных [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 строке