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

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

Deadlock Update [D7, IB6.x]


ss300 ©   (2004-05-26 09:19:00) 

доброе утро мастера!!
на сервере есть ХП

вот основной код:  

UPDATE Global SET LASTREGNUM = :Ret;
UPDATE Global SET Data = :NowDate;

Когда я с одного клиентского приложения вызываю процедуру
spUP.ExecProc;  работает ноормально.

а когда паралельно 2 клиента вызывает процедуру то на одном клиенте ошибка:
Deadlock update with concurrent update

Как устранить эту ошибку ? ..

спасибо


Sergey13   (2004-05-26 10:42:00) [1]

комит/ролбек снимают блокировку. Но у тебя, ИМХО, несколько другая ситуевина. Желательно блокировать таблицу перед апдейтом. Типа для ФБ1.5 select * from table for update With Lock. Для ИБ6.0 смотри ссылку в [1].
И еще раз повторю - странная задача у тебя. ИМХО, надо структуру править.


ss300   (2004-05-26 10:12:00) [2]

таблица блокируется когда первый юзер апдейтит!! и второй юзер не может апйдетит.. как разблокировать таблицу после того как первый юзер заапдетит ??


Sergey13   (2004-05-26 09:48:00) [3]

2ss300   (26.05.04 09:39) [3]
Ну тогда таблицу надо перед апдейтом блокировать, ИМХО. Странная задача какая то - несколько человек одновременно апдейтят всю таблицу. Может в консерватории что подправить надо?


ss300   (2004-05-26 09:47:00) [4]

может IBTransaction := true сделать ??


ss300   (2004-05-26 09:39:00) [5]

Да, вся таблица апдейтится

там всего лишь одна таблица


Sergey13   (2004-05-26 09:27:00) [6]

Может так.
UPDATE Global SET LASTREGNUM = :Ret, Data = :NowDate;
И потом. У тебя вся таблица должна апдейтится в процедуре?


Johnmen   (2004-05-26 09:26:00) [7]

Разобраться с конкурирующими транзакциями. см.ibase.ru


Наверх

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