lord0n пишет:
> На сколько мне известно блокировки в БД охватывают весь запрос
Это — ошибочное мнение.
> То есть если я напишу
>
> select * from QUEUE where InWork = 0 and Result is null
> то у меня заблокируется вся очередь, а не её первый элемент (который мне
> и нужен)
Нет, неверно. Может заблокироваться либо строка, либо страница,
либо вся таблица. Конкретика зависит от многих-многих вещей.
> мне нужно какимто образом получить первый элемент и заблокировать его на
> то время пока я с ним работаю
> как это сделать я не знаю
begin transaction
select * from QUEUE where <нужная строка> for update
-- или, если БД не поддерживает SELECT..FOR UPDATE
update QUEUE set some_field = some_field where <Нужная строка>
....
commit/rollback
Posted via RSDN NNTP Server 2.1 beta