![]() |
|
Модераторы: skyboy |
![]()
|
|
| Hypertonyc |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 19.10.2008 Репутация: нет Всего: нет |
Здраствуйте...
Помогите...у меня вопрос. я использую MySQL 5.1...пишу на C++ в MS Visual studio на WinAPI+MYSQL.H... Есть необходимость заблокировать строку в таблице на время редактирования пользователем...для других пользователей....То есть когда один пользователь редактирует запись...другие при обращении к ней получают сообщение о том што запись редактируется и продолжают работу... Как это реализовать? Мы пробовали использовать такой алгоритм:
при этом когда один пользователь выполняет данные комманды все проходит успешно... а второй пользователь виснет...до завершения транзакции первого... мы поменяли в файле my.ini innodb_lock_wait_timeout=1 (было 120) теперь приложение второго пользователя виснет на секунду и завершается с ошибкой... возможно нужно отлавливать исключение try'ем??если да то объясните как? пробывали воттак...неполучилось:
Месчбокса не появляется и приложение также закрывается с ошибкой... Это сообщение отредактировал(а) skyboy - 18.11.2008, 09:58 |
||||
|
|||||
| igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 5 Всего: 17 |
Я сделал так - в таблице добавил поле EditorID и при открытии окна на редктирование, тут же делаю Update записи, где EditorID присваиваю индекс пользователя.
При попытке открытия записи на редактирование, я проверяю этот параметр, если он отличен от 0, то выдаю сообщение - запись заблокирована тем-то тем-то на редактирование. При завершении редактирования, при обновлении записи, я соответственно обнуляю EditorID. Работает нормально и давно ... такой простой вариант ... -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Hypertonyc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 19.10.2008 Репутация: нет Всего: нет |
Мы отказались от такого варианта! причина:может быть такое, что записав свой номер в дополнительное поле программа некорректно завершится...произойдёт сбой...моргнёт свет...да мало ли чего...и запись заблокируется навсегда...у нас нет времени потом ездить ко всем и обнулять данные поля...
вобщем просьба ответить на поставленный в первом посте вопрос...ну или предлажить другую альтернативу... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |