Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.01.2002, 11:16
|
|||
---|---|---|---|
|
|||
Управлять блокировкой записей в MS SQL из Бильдера |
|||
#18+
Есть нужда управлять блокировкой записей MS SQL из Билдера, типа .......... //при открытии формы редактирования записи делаем: adoCommand->CommandText = "BEGIN TRAN" adoCommand->Execute(); /// далее исполняю сохраненную процедуру, которая возвращает одну запись: SELECT * FROM someTable WITH (UPDLOCK) WHERE someID = @xxx /// трали-вали ... работаем с записью и при закрытии формы делаем /// adoCommand->CommandText = "COMMIT TRAN" adoCommand->Execute(); .......... При этом количество заблокированных ресурсов на сервере не уменьшается (( и запись остается заблокированной для других юзеров. Именованные транзации не помогают. Хелп, плиз, если кто-нибудь знает как это побороть. Может быть есть другие технические решения данной проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.02.2002, 09:27
|
|||
---|---|---|---|
|
|||
Управлять блокировкой записей в MS SQL из Бильдера |
|||
#18+
Если я правильно понимаю, то вы хотите залокировать записи на время их обработки... Так вот транзакции здесь немного не в тему: BEGIN TRAN локирует таблицы полностью, так что если ваше приложение стоит более чем на одном клиенте, все остальные будут отдыхать пока вы эту запись обрабатываете. Я бы рекомендовал транзакции отсюда выкинуть и использовать другие методы блокировки, ну например, ROWLOCK. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=57&tablet=1&tid=2036571]: |
0ms |
get settings: |
24ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
3ms |
others: | 275ms |
total: | 457ms |
0 / 0 |