![]() |
|
|
![]()
|
|
| null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
Возникла задача проведения ряда операций с базой, в то время, чтобы другие аналогичные, ожидали...
Приведу пример конкретной задачи, чего пытаюсь добиться 1а) Поток обращается к базе данных за тем, чтобы узнать свои права доступа и возвращает результат. 2а) Вернувшийся результат анализируется и на основании этого анализа производятся изменения прав других пользователей в базе данных Другой поток в это же время пытается произвести те же манипуляции но от имени другого пользователя Чего пытаюсь добиться: Хочу, чтобы, как только первый поток лезет за своими правами в базу, аналогичный запрос, которого уже перегнал первый поток, ждал результата и черпал данные из базы, уже когда первый поток вполне возможно изменит все что нужно... короче проблема гонок и достоверности информации Тут конечно есть вариант использования QWaitCondition, если идет запрос прав и еще чего - то, но на сколько мне известно, в мускуле и других субд есть встроенные средства решения подобных проблем или я ошибаюсь... блокировка базы Поделитесь опытом или идеями решения этой задачки.. Заранее благодарен за помощь |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Можно залочить таблицу, тогда второй поток будет ждать до тех пор пока её не разлочат.
http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html |
|||
|
||||
| null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
да, то что нужно, спасибо...
Это выполнить в стандартном <QSqlQuery> можно выполнить? |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |