![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]()
Всем доброй ночи!
Вот у меня такой глупый вопрос ![]() Стоит задача следить за изменением записей в таблице БД. Я решил воспользоваться таймером, закинул в него запрос на получение нужной мне записи, ну и соответсвенно там и провожу необходимые действия с записью. Время срабатывания таймера - 500мс. (и тут же возникает другой вопрос, действительно ли мой таймер успеет выполнить запрос к БД чуть менее чем за 500 мс?) Второй таймер у меня обращается к этой же таблице, но его роль немного другая - собственно производить изменения записей в таблице. Время тоже - 500мс. У меня возникает вопрос, возможен ли такой вариант, что в какой-либо момент, два запроса из двух таймеров столкнутся и произойдет конфликт - один попытается забрать запись, а другой в этот же момент попытается ее изменить, ну или что-то в этом роде ![]() Или это я накручиваю себе что-то? ![]() P.S. MySQL. P.P.S. Так как мое приложение однопоточное, чисто теоретически(насколько я понимаю), это исключено, но все-таки, вдруг есть какие-либо нюансы о которых мне неизвестно. Последний раз редактировалось Базиля; 22.08.2012 в 03:35. |
![]() |
![]() |
![]() |
#2 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Цитата:
потом прочитал что можно и наоборот (прочитал, потом изменил). И никаких проблем с синхронностью. Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|||
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]()
Спасибо.
Что - то я неудачный пример привел со вторым таймером. Конечно же в данном случае надо было бы пользоваться 1 таймером ![]() А вот как например быть в том случае, если добавление записи происходит по нажатии на кнопку. Есть возможность получения конфликта? Если по прожнему учитывать, что 1 таймер обращается к таблице бд. Последний раз редактировалось Базиля; 23.08.2012 в 00:47. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
![]()
Я думаю, что конфликта не должно быть.
|
![]() |
![]() |
![]() |
#5 |
gcc 4.7.1 Opensuse
Пользователь
Регистрация: 07.03.2012
Сообщений: 22
|
![]()
Конфликта не будет, если спать спокойно все равно не получается можно буллеву переменную переключать во время считывания и возвращать после. А перед нажатием на запись поставить проверку если false то sleep и goto к началу если
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 30.01.2009
Сообщений: 418
|
![]()
1) а зачем так быстро? 5-10 сек думаю бы хватило
2) Для таймера надо объявить несколько переменных которые отвечают за состояние "запроса". То есть если запрос еще выполняется, то процедура таймера завершается через exit() и запросов не выполняет. |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа обращения слова | modm | C++ Builder | 7 | 12.06.2012 12:14 |
Частые обращения к БД | Newpitbull | SQL, базы данных | 5 | 14.02.2012 20:00 |
мониторинг обращения к папке | matue | Общие вопросы Delphi | 2 | 20.07.2011 10:03 |
Параллельные обращения к mysql | sunnmas | БД в Delphi | 1 | 12.10.2009 22:07 |
Слияние шаблона с данными из таблице, и как подсичтать значение количества полей в таблице | n4ela | Microsoft Office Access | 3 | 07.03.2009 12:04 |