Запрет на редактирование если запись не null(Блокировки)

212
12 сентября 2018, 03:00

Есть приложение в котором есть DataGrid в котором есть заявки. За этим приложением работают несколько юзеров. И если они в один и тот же момент хотят взять в работу одну и ту же заявку, чтоб первому он дал эту заявку, а второму написал что эту заявку уже забрали. Причем кол-во пользователей свыше 100... Как можно это грамотно реализовать в SQL.

DECLARE @UserIdAimCheck int
SET @UserIdAimCheck = (SELECT TOP 1 UserIdAim FROM History WHERE HistoryId=@historyId)
IF @UserIdAimCheck is null
BEGIN
    UPDATE History SET UserIdAim=@userId
        WHERE History.HistoryId=@historyId
    SELECT 'Заявка успешно взята вами в работу';
END
    ELSE
BEGIN
    SELECT 'Данная заявка уже в работе, обновите таблицу!';
END
Answer 1

Если для не-взятой заявки соотв. поле (UserIdAim?) содержит NULL (или ноль), то

UPDATE History 
SET UserIdAim=@userId
WHERE History.HistoryId=@historyId
AND UserIdAim IS NULL /* или =0 */

и затем тупо контроль либо количества обновлённых записей (не ноль - получилось, ноль - кто-то успел раньше), либо SELECT по @historyId и @userId и проверка, что возвращается ненулевое количество записей.

В обоих случаях, получив ноль, сообщаем, что заявку слямзили буквально из-под носа. А обновить в таком случае можно и автоматически...

READ ALSO
Установка курсора в стилях по умолчанию элемента или в элементе: hover?

Установка курсора в стилях по умолчанию элемента или в элементе: hover?

Существует ли какая-либо практическая разница между двумя способами задания курсора?

213
Позиционирование div (не получается)

Позиционирование div (не получается)

Имеются три div блокаВыровнял по линии их с помощью display: inline-block

200
Заливка текста svg выходит за границы символа

Заливка текста svg выходит за границы символа

Подскажите, пожалуйста, в чем проблема (или я что-то не понимаю)Есть SVG

179