![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как наложить блокировку из приложения? [D7, MSSQL]
Bless © (2003-12-01 11:59:00)
Нужно после того, как пользователь нажал F2 на ячейке DBGrid-a, наложить блокировку на строку из некой таблицы. Как это сделать?
Michail Dalakov (2003-12-02 12:34:00) [1]
То Bless (01.12.03 11:59) HOLDLOCK
Пример
begin tran
select * from table1 HOLDLOCK where ID=.....
waitfor delay "00:00:10"
commit
Bless (2003-12-02 10:57:00) [2]
Ладно, спасибо.
Shirson (2003-12-02 09:42:00) [3]
У меня поле есть, в котором отмечается, доступна запись для редактирования или нет.
Bless (2003-12-02 09:16:00) [4]
А как посмотреть, "можно ли трогать эту запись"?
Shirson (2003-12-01 18:06:00) [5]
Это сильно зависит.
У меня блокировка на уровне приложения. Т.е. прога смотрит, можно ли трогать эту запись или нет.
Можно триггер настроить. Чтобы он все deleted-inserted в эту строку откатывал. (завести таблицу, в которой хранить id залоченных записей)
(Можно было бы пермишенсы выставить на саму таблицу, но они выставляются на неё всю, или на поля)
Bless (2003-12-01 15:09:00) [6]
>и "наложить блокировку на строку из некой таблицы"
Как это делается?
Shirson (2003-12-01 12:20:00) [7]
F2 это post?
Тогда триггером на таблице, которую отображает DBGrid.
Либо, вешаться на onAfterPost у Query, и "наложить блокировку на строку из некой таблицы"
asp (2003-12-01 12:14:00) [8]
Запускай транзакцию и изменяй эту строчку. Но не нравится мне это...