Блокировки записей в ADO?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
fedoseev
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 21.07.2003 (Пн) 8:46

Блокировки записей в ADO?

Сообщение fedoseev » 04.12.2003 (Чт) 10:18

Подскажите пожалуйста как блокировать в ADO конкретную запись?
Я использую MSSQL Server в качестве БД.

Например 1-ый пользователь открыл запись и редактирует ее, 2-ой пользователь ведь может просто запросто удалить ее!!!

В DAO у меня с блокировкой не было проблем...
В ADO я ставил в recordset.locktype = adLockPessimistic, но как то не работает все это!!!

Перерыл всю MSDN, но конкретно ничего не нашел...

Может кто сталкивался?

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Re: Блокировки записей в ADO?

Сообщение snov » 23.11.2004 (Вт) 14:25

fedoseev писал(а):В DAO у меня с блокировкой не было проблем...
В ADO я ставил в recordset.locktype = adLockPessimistic, но как то не работает все это!!!

Перерыл всю MSDN, но конкретно ничего не нашел...


Касательно блокировок в DAO. Позвольте узнать где это XS or MSSQL. Для меня как раз проблемка такая встала насчет блокировок в XS
А про МСДН - это вы погорячились! лучше искать надо было
посмотрите здесь http://support.microsoft.com/default.as ... -US;224453

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 23.11.2004 (Вт) 14:44

В ADO я ставил в recordset.locktype = adLockPessimistic, но как то не работает все это!!!


Курсор должен быть серверный.

Например 1-ый пользователь открыл запись и редактирует ее, 2-ой пользователь ведь может просто запросто удалить ее!!!


Ну и что из того что удалили - обработай ошибку и ругнись соответственно. Это на порядок лучше чем блокировать запись.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 24.11.2004 (Ср) 21:52

Если запись удалена, то при запуске апдейта у тебя просто получится @@ROWCOUNT = 0, вот и все. Это даже ошибки не вызовет. Другой вопрос, что в такой ситуации первый пользователь будет уверен, что он все сделал, а на самом деле он не сделал ничего. Думаю, это вопрос концепции прав доступа - кто угодно не должен иметь полномочия удалять что угодно. И вообще, все зачистки должны быть строго распределены по управляющим ролям, если вообще допустимы. Я уж не говорю про прямые гранты на таблицы - максимум на вьюхи, не больше. А все апдейты/делиты/инсерты должны выполняться через серверный функционал, т.е. хранимки либо функции.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList