Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ограничение на одновременное редактирование 
:(
    Опции темы
NotIsClone
Дата 22.5.2009, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.3.2009

Репутация: нет
Всего: нет



суть проблемы: как заблокировать одновременное редактирование одной и той же строки?
написал приложение на шарпах, оно подключается к серверу и можно редактировать и так дали. как сделать блокировку строки? это делать на сервере или у себя в приложении? читал книгу где это описано, но не могу теперь ее найти...

PM MAIL   Вверх
boevik
Дата 22.5.2009, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



Лучше делать при помощи сервера.
т.е., при открывании записи на редактирование установить начало транзакции и выполнить select с update lock
Код

begin tran
select * from t1 with(updlock) where f1=1

после окончания редактирования , выполнить update и закрыть транзакцию
Код

update t1 set f1=1  where f1=1
commit tran




--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
NotIsClone
Дата 22.5.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.3.2009

Репутация: нет
Всего: нет



сп, а где  можно подробней прочитать об этом?
т.е. мне не до конца понятно что писать и где писать...
fl - это запись?
PM MAIL   Вверх
boevik
Дата 22.5.2009, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



выборка и update показаны  для примера.
в выборке важно установить with(updlock) 
Искать: как в С# определяются начало и конец транзакции.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
NotIsClone
Дата 22.5.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.3.2009

Репутация: нет
Всего: нет



еще раз сп, еще вопрос я храню логин и пароль в конфинг-файле
какую лучше учетку использовать для подключения к серверу? или их использовать несколько, одна для админа, 2я для 2го пользователя и т.д.

Добавлено через 1 минуту и 22 секунды
хотел репу дать дак оказывается мне нужно 100 постов)
а жаль...
PM MAIL   Вверх
boevik
Дата 22.5.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



С# это windows form application или web application?
Если windows form application и клиенты находятся под домайном, то лучше использовать windows authentication при подключении к серверу. Тогда не надо сохранять логин и пароль в конфиг-файле.
Но надо будет каждого пользователя определять в сервере или в window группе.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
NotIsClone
Дата 22.5.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.3.2009

Репутация: нет
Всего: нет



Цитата(boevik @ 22.5.2009,  09:48)
Но надо будет каждого пользователя определять в сервере или в window группе.

С# windows form application
а как определить пользователя на сервере?
PM MAIL   Вверх
boevik
Дата 22.5.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



посмотри пример на сайте
только в 5 шаге надо пометить windows authentication


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
NotIsClone
Дата 22.5.2009, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.3.2009

Репутация: нет
Всего: нет



еще вопросик, а при такой реализации можно определять имя пользователя и писать в лог на сервере какие он таблицы просматривал и редактировал?
PM MAIL   Вверх
boevik
Дата 22.5.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



думаю, что можно.
А ещё есть утилитка SQL Profiler, которая записывает все действия на сервере (конечно можно отконфигурировать что бы писала только нужные)


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
NotIsClone
Дата 22.5.2009, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.3.2009

Репутация: нет
Всего: нет



Цитата(boevik @ 22.5.2009,  11:19)
думаю, что можно.
А ещё есть утилитка SQL Profiler, которая записывает все действия на сервере (конечно можно отконфигурировать что бы писала только нужные)

спасибо огромное, отправил ПМ, чтоб кинули репу
я просто думал прийдется писать еще одну прогу которая будет писать лог
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.