Здравствуйте, GarryIV, Вы писали: GIV>Правда у меня есть определенные сомнения, что lock (критической секции) будет достаточно. Если нет то заменить lock на другой объект синхронизации. Например mutex.
Гм. Вынужден предупредить, что при запуске клиентских приложений на нескольких машинах mutex тоже не поможет.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Блокировка для предотвращения попытки нарушения уника
Здравствуйте, rockandroll, Вы писали:
R>UPDATE TABLE SET FIELD = FIELD
Ну, во-первых это далеко не всю таблицу, а во вторых, все равно не спасет...
Весь цимус задачки в том, что на момент этого самого апдейта записи не существует и апдейтить нечего, поэтому этот фокус сработает только при уровне изоляции не ниже Serializable, и только на серверах поддерживающих предикатные блокировки.
... [ RSDN@Home 1.1.4 revision 142 ]
Мы уже победили, просто это еще не так заметно...
Re[9]: Блокировка для предотвращения попытки нарушения уника
Здравствуйте, igna, Вы писали:
I>Serializable с Microsoft Access к сожалению не проходит.
Да там даже базу толком заблокировать нельзя, если я правильно помню, а не то что таблицу...
I>Пока добавил к базе данных еще одну таблицу с одной строкой и одним столбцом и использую ее единственный элемент для синхронизации. Хотелось бы получить уверенность, что это не извращение, или наоборот, таковой окончательно лишиться.
Ну не то чтобы это не извращение, но для Access'а вполне жизнеспособное решение...
... [ RSDN@Home 1.1.4 revision 142 ]
Мы уже победили, просто это еще не так заметно...
Re[8]: Блокировка для предотвращения попытки нарушения уника
Здравствуйте, igna, Вы писали:
I>Не спорю. Опыта работы с базами данных у меня нет, потому если узнаю, что принято не обращать внимания на такого рода практически невероятные проблемы, то так тому и быть.
Обращать внимание — надо. Другой вопрос, что "практически невероятные" проблемы достаточно обрабатывать корректно — не тратя силы на то, чтобы обработать их абсолютно оптимально для пользователя. В данном случае прореагировать непосредственно на нарушение целостности — проще и удобнее для программирования и ничуть не менее удобно для пользователя.
Re[5]: Блокировка для предотвращения попытки нарушения уника
Здравствуйте, Merle, Вы писали:
R>>UPDATE TABLE SET FIELD = FIELD M>Ну, во-первых это далеко не всю таблицу, а во вторых, все равно не спасет... M>Весь цимус задачки в том, что на момент этого самого апдейта записи не существует и апдейтить нечего, поэтому этот фокус сработает только при уровне изоляции не ниже Serializable, и только на серверах поддерживающих предикатные блокировки.
Ну можно апдейтить не эту таблицу а другую, например
UPDATE TABLE_LOCK SET SOME_FIELD = SOME_FIELD WHERE TABLE_NAME = "USERS"
Само собой что в таблице TABLE_LOCK должна быть строка удовлетворяющая условию.
... << RSDN@Home 1.1.4 >>
Re[6]: Блокировка для предотвращения попытки нарушения уника
Hello, Sinclair!
S> Здравствуйте, GarryIV, Вы писали: GIV>> Правда у меня есть определенные сомнения, что lock (критической GIV>> секции) будет достаточно. Если нет то заменить lock на другой объект GIV>> синхронизации. Например mutex. S> Гм. Вынужден предупредить, что при запуске клиентских приложений на S> нескольких машинах mutex тоже не поможет.
Это сомнений не вызывает Речь шла о ASP.NET приложении, так что с большой долей вероятности можно утверждать, что поможет.