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


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