Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/33: Рейтинг темы: голосов - 33, средняя оценка - 4.70
VisualC++Lamer
0 / 0 / 0
Регистрация: 24.04.2007
Сообщений: 4
1

Как блокировать запись на время редактирования?

24.04.2007, 15:44. Просмотров 6231. Ответов 6
Метки нет (Все метки)

на вижуале С++ пишу сетевое приложение, которое работает с SQL Server, подскажите пожалуйста, как блокировать запись на время редактирования, чтобы остальным пользователям она была недоступна для изменений и просмотра????
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2007, 15:44
Ответы с готовыми решениями:

Блокировать Excel на время выполнения макроса
Есть очень долгоиграющий макрос. Пользователи забывают про расчет и пытаются нажать на лист, что...

Выравнивание текста в TStringGrid: как выравнять содержимое ячейки во время режима редактирования?
Доброго времени суток. Я могу выравнять текст по центру внутри ячейки путём её перерисовки, но что...

Как по нажатию кнопки передавать в новую форму только текущую запись для редактирования
У меня есть форма в которой отображаеться таблица из базы sql в виде DataRepeater. Возле каждой...

ADO Recordset блокирует всю таблицу, нужно блокировать только редактируемую запись
Как?

Изменились дата-время в истории редактирования
Документ был создан 17.02 Access_Created 11.02.2009 20:10 Access_Modified 11.02.2009 20:15...

6
mik-a-el
Администратор
75054 / 44190 / 243
Регистрация: 10.04.2006
Сообщений: 12,892
24.04.2007, 17:58 2
UPDLOCK
Опция используется для блокировки считанных строк из таблицы в текущей транзакции, чтобы в период между считыванием данных из таблицы и окончанием действия транзакции данные не изменялись.
В следующем примере показано для чего это нужно:

use tempdb
if OBJECT_ID('Table1') is not null drop table Table1
create table Table1 (ID int identity primary key, Name varchar(50))

insert into Table1 values('Строка 1')
insert into Table1 values('Строка 2')

begin tran

declare @Name varchar(50)
select @Name=Name
from Table1 with (updlock)
where ID=1

-- проводим какие-то преобразования

set @Name=@Name+@Name
update Table1 set Name=@Name where ID=1
exec sp_lock @@SPID

commit tran
0
VisualC++Lamer
0 / 0 / 0
Регистрация: 24.04.2007
Сообщений: 4
25.04.2007, 01:46  [ТС] 3
это только на время транзакции?
а если на неопределённое время?
0
mik-a-el
Администратор
75054 / 44190 / 243
Регистрация: 10.04.2006
Сообщений: 12,892
25.04.2007, 09:49 4
На время транзакции.
0
VisualC++Lamer
0 / 0 / 0
Регистрация: 24.04.2007
Сообщений: 4
26.04.2007, 13:26  [ТС] 5
я вот накопал CRecordSet::SetLockingMode() в вижуале
но пока не понял как оно работает :-(
может встречались с таким?
0
mik-a-el
Администратор
75054 / 44190 / 243
Регистрация: 10.04.2006
Сообщений: 12,892
26.04.2007, 13:42 6
Почитай здесь - много полезного есть по блокировкам.
0
VisualC++Lamer
0 / 0 / 0
Регистрация: 24.04.2007
Сообщений: 4
27.04.2007, 01:46  [ТС] 7
спасибо за помощь :-)
0
27.04.2007, 01:46
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2007, 01:46

Закрыть таблицу на время добавления/редактирования
Есть связанные таблицы (ч/з внешний ключ). Условие такое - при успешном добавлении инфы в основную...

Выполнение макроса во время редактирования текста в ячейке
Как выполнить такой макрос? Я выделяю текст в ячейке (либо его часть), нажимаю кнопку макроса,...

Изменять цвет текста внутри InplaceEdit во время редактирования
Доброго времени суток. Есть таблица TStringGrid, для неё по секретным документам (спасибо volvo)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.