Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как заблокировать запись
|
|||
|---|---|---|---|
|
#18+
Подскажите как можно вручную заблокировать запись или таблицу в MSSQLSERVER 7. Пример один пользователь начинает редактировать запись в таблице, остальным эта запись должна быть доступна только для чтения. Есть ли встроенаая процедура делающая это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2001, 10:26 |
|
||
|
Как заблокировать запись
|
|||
|---|---|---|---|
|
#18+
В нескольких словах: SQLSerer автоматически блокирует строки, страницы, таблицы при начале проведения транзакции (INSERT,UPDATE,DELETE). Т.е. пока не закончится транзакция начатая одним пользователем, не начнется другая. Другие транзакции сервер ставит в очередь.Объяснять это долго,поэтому лучше почитать про коллективный доступ к данным, захваты и блокировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2001, 11:19 |
|
||
|
Как заблокировать запись
|
|||
|---|---|---|---|
|
#18+
Идея антиизящная для клиент-серверной архитектуры по своей природе. Длительные блокировки чего-либо для SQL-сервера в принципе противопоказаны - поскольку они будут вносить серъезные помехи работе множества пользователей. Именно поэтому у сервера не предусмотрено никаких средств интерактивного взаимодействия с пользователем, кроме выдачи информационных сообщений (без обратной связи!). Если все будет работать так как ты хочешь, неизбежно возникнет ситуация, когда тупой юзер откроет форму только чтобы посмотреть на данные, а в это время его вызовет руководство, а отттуда он напрямую побежит в буфет, а потом вообще уедет в местную командировку. Все это время други пользователи будут сидеть и ждать у моря погоды. Блокироваться данные должны только на время шевеления ими - чтобы два пользователя не могли одновременно запустить схожую модификацию данных. А смотреть - пусть смотрят хоть толпой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2001, 15:38 |
|
||
|
Как заблокировать запись
|
|||
|---|---|---|---|
|
#18+
Вот вот! Серъезная, однако, тема! При распределении логики между клиентом и сервером клиентская часть работает, по сути с потенциально неактуальными данными! Вариант - вынос всей логики на сервер. Но и тут те же грабли - отсутсвие элементарного уведомления клиента о тои, что когда-то запрошенные им данные устарели. А ведь в IB эту проблему можно решить. Существует механизм поддержки обратной связи посредством генерирования событий для клиентов. Хотя многого другого в IB нет. А как хотелось бв поиметь подобный механизм в MS! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2001, 17:52 |
|
||
|
Как заблокировать запись
|
|||
|---|---|---|---|
|
#18+
Вообще-то для решения проблем работы с неактуальными данными существует специальный тип TimeStamp. Конечно, придется повозиться над триггерами, внутри которых должен определяться факт актуальности/неактуальности данных, над которыми производятся операции с откатом выдачей ругательства, если данные уже неактуальны. Есть и другие приемы, которые можно реализовать собственными методами с использованием вспомогательных "таблиц актуальности". Если пересечения между пользователями происходят достаточно редко, то вполне достаточно выявить факт возникновения неактуальности данных в момент попытки их сохранения, сообщить об этом пользователю и предложить обновить данные на клиенте. Я, например, использую собственные приемы. Многострочный документ (накладная), может находиться в двух состояниях - "черновик" и "беловик". Пока она находится в состоянии "черновик", она доступна для изменения только одному пользователю - тому, кто ее в это состояние перевел (или создал). В таком состояниии накладная может находиться очень длительное время и на протяжении множества сеансов. Когда на ней ставят метку "беловик", запускаются проводки по регистрам, журнализация и т.д. После этого уже любой пользователь может просматривать ее. И если захочет подправить, снова изменит ее статус на "черновик" - это приведет к уничтожению всех оборотов по регистрам и журнализации уничтожения накладной данным пользователем. А черновик накладной станет доступен только тому, кто эту накладную модифицирует. Когда он откорректирует содержимое накладной, он снова устанвит статус "беловик", накладная снова запустит проводки по регистрам, зажурнализируется ее очередная модификация и она снова станет доступна всем пользователям. При этом остается возможность просмотра истории модификации накладной. Короче, тут широкое поле для творчества и фантазии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2001, 20:00 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32004272&tid=1827004]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 376ms |

| 0 / 0 |
