![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многопользовательский режим [MSSQL]
freeman82 © (2004-06-09 09:08:00)Здравствуйте.
В приложении с помощью TQuery делаем запрос на выборку,получаем НД.Затем скажем пользователь A,выбирает запись и открывает ее для редактирования,а в этот момент пользователь B удаляет эту запись.Как бороться с такими ситуациями?
freeman82 (2004-06-09 11:45:00) [1]Интересное решение
http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=7031
Alexandr (2004-06-09 10:41:00) [2]так, ладно регистрация прошла успешно.
А я тут проездом :)
так, посмотреть чего новенького... вот баннер про allegro дюже занятный и сама эта система тоже...
Так что не зря зашел :)
Johnmen (2004-06-09 10:40:00) [3]Нет. Просто БД регистрации падала...:)
Alexandr (2004-06-09 10:39:00) [4]они что, опять регистрацию поменяли?
Johnmen (2004-06-09 10:28:00) [5]>Alexandr (09.06.04 10:16) [22]
Да, наверное...:)
А тебя давно не было видно. Рад, что вернулся. Кстати, зарегистрируйся, а то ник быстро приберут...:)))
Alexandr (2004-06-09 10:16:00) [6]Johnmen, видишь, он прикалывается над тобой. А ты повелся.
Silver Alex (2004-06-09 10:14:00) [7]
> И где видно, что про явные ?
а ты внимательней читай, Джони
Johnmen (2004-06-09 10:08:00) [8]>мы говорим про явные транзакции
Мы - это кто ?
И где видно, что про явные ?
Kadr (2004-06-09 10:08:00) [9]http://alice.stup.ac.ru/~dvn/uproc/books/bd_pushnikov/dblearn10.html
по-моему все расписано достаточно понятно
Silver Alex (2004-06-09 10:07:00) [10]
> :))) Пишущую? Нет, конечно.
ну а нафиг тогда эти реплики,
мы говорим про явные транзакции, а ты мне начинаешь встегивать про то как работают SQL сервера.
Silver Alex (2004-06-09 10:04:00) [11]
> freeman82 (09.06.04 10:01) [15]
> какие тут транзакции.
а чтобы управлять ними :)
Johnmen (2004-06-09 10:04:00) [12]>Silver Alex © (09.06.04 09:48) [10]
Транзакции, они неотъемлемая часть любого SQL сервера. И ЛЮБАЯ работа с БД не может идти вне контекста тр-ии. Как она стартована/управляется, явно или нет, дело десятое...
>ты тоже перед редактированием открываешь ...
:))) Пишущую? Нет, конечно.
freeman82 (2004-06-09 10:01:00) [13]>Соловьев ©
Пользователи работают уже c результатом запроса SELECT,а форме редактирования используются значения из уже полученного НД.И если форма открыта 5 мин какие тут транзакции.
Соловьев (2004-06-09 09:56:00) [14]
> тогда зачем ты советовал открывать транзакцию при изменении
> записи?
чтобы ею управлять
Silver Alex (2004-06-09 09:55:00) [15]
> Соловьев © (09.06.04 09:51) [12]
ты переобуваешься в воздухе, если в компонентах доступа это ,по твоему мнению это реализовано, тогда зачем ты советовал открывать транзакцию при изменении записи?
Соловьев (2004-06-09 09:51:00) [16]
> Или ты тоже перед редактированием открываешь а после закрываешь
> транзакции?
за тебя это сделали разработчики компонет доступа.
Соловьев (2004-06-09 09:50:00) [17]
> 1-й вариант - А открывает транзакцию изменяет запись , закрывает
> транзакцию.В удаляет эту запись.Записи нет
> 2-й вариант - сначала В удаляет эту запись.А ее выбирает
> на изменение, изменяет и сохраняет, но записи уже нет
> 3-й вариант-А ее выбирает на изменение,в это время В удаляет
> эту запись, А ее изменяет и сохраняет, но записи уже нет
говорить без уровня изоляции транзакций для А и В глупо.
Silver Alex (2004-06-09 09:48:00) [18]
> Johnmen © (09.06.04 09:42) [9]
в Ineter Base они есть "даже если я (или кто другой) про них ничего не знает или не видит или не управляет", но не [MSSQL], тем более не в явном виде.Или ты тоже перед редактированием открываешь а после закрываешь транзакции?Вот от тебя не ожидал
Johnmen (2004-06-09 09:42:00) [19]>Silver Alex © (09.06.04 09:39) [8]
Они, тр-ии, есть, даже если ты (или кто другой) про них ничего не знает или не видит или не управляет...
:)
Silver Alex (2004-06-09 09:39:00) [20]
> Бороться можно и нужно. Все зависит от задач, надо внимательно
> изучить предметную область и решить такой конфликт:
сгласен все зависит от конкретной задачи, но обьясни мне разницу :
А открывает набор данных, далее
1-й вариант - А открывает транзакцию изменяет запись , закрывает транзакцию.В удаляет эту запись.Записи нет
2-й вариант - сначала В удаляет эту запись.А ее выбирает на изменение, изменяет и сохраняет, но записи уже нет
3-й вариант-А ее выбирает на изменение,в это время В удаляет эту запись, А ее изменяет и сохраняет, но записи уже нет
Запись удаляется в любом случае, для чего здесь транзакция?
ИМХО транзакции нужны когда идет ряд действий, которые являются одной операцией, чтобы в случае неудачи откатить все действия или подтвердить.