Гость
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Управлять блокировкой записей в MS SQL из Бильдера / 2 сообщений из 2, страница 1 из 1
17.01.2002, 11:16
    #32020887
hugo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управлять блокировкой записей в MS SQL из Бильдера
Есть нужда управлять блокировкой записей MS SQL из Билдера, типа
..........
//при открытии формы редактирования записи делаем:
adoCommand->CommandText = "BEGIN TRAN"
adoCommand->Execute();
///
далее исполняю сохраненную процедуру, которая возвращает одну запись:
SELECT * FROM someTable WITH (UPDLOCK) WHERE someID = @xxx
///
трали-вали ... работаем с записью
и при закрытии формы делаем
///
adoCommand->CommandText = "COMMIT TRAN"
adoCommand->Execute();
..........
При этом количество заблокированных ресурсов на сервере не уменьшается (( и запись остается заблокированной для других юзеров. Именованные транзации не помогают.
Хелп, плиз, если кто-нибудь знает как это побороть.
Может быть есть другие технические решения данной проблемы?
...
Рейтинг: 0 / 0
22.02.2002, 09:27
    #32023727
nic_ii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управлять блокировкой записей в MS SQL из Бильдера
Если я правильно понимаю, то вы хотите залокировать записи на время их обработки... Так вот транзакции здесь немного не в тему: BEGIN TRAN локирует таблицы полностью, так что если ваше приложение стоит более чем на одном клиенте, все остальные будут отдыхать пока вы эту запись обрабатываете. Я бы рекомендовал транзакции отсюда выкинуть и использовать другие методы блокировки, ну например, ROWLOCK.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Управлять блокировкой записей в MS SQL из Бильдера / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]