|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.08.2012, 03:30 | #1 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
Ежесекундные обращения к таблице БД
Всем доброй ночи!
Вот у меня такой глупый вопрос Стоит задача следить за изменением записей в таблице БД. Я решил воспользоваться таймером, закинул в него запрос на получение нужной мне записи, ну и соответсвенно там и провожу необходимые действия с записью. Время срабатывания таймера - 500мс. (и тут же возникает другой вопрос, действительно ли мой таймер успеет выполнить запрос к БД чуть менее чем за 500 мс?) Второй таймер у меня обращается к этой же таблице, но его роль немного другая - собственно производить изменения записей в таблице. Время тоже - 500мс. У меня возникает вопрос, возможен ли такой вариант, что в какой-либо момент, два запроса из двух таймеров столкнутся и произойдет конфликт - один попытается забрать запись, а другой в этот же момент попытается ее изменить, ну или что-то в этом роде Или это я накручиваю себе что-то? P.S. MySQL. P.P.S. Так как мое приложение однопоточное, чисто теоретически(насколько я понимаю), это исключено, но все-таки, вдруг есть какие-либо нюансы о которых мне неизвестно. Последний раз редактировалось Базиля; 22.08.2012 в 03:35. |
22.08.2012, 09:22 | #2 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Цитата:
потом прочитал что можно и наоборот (прочитал, потом изменил). И никаких проблем с синхронностью. Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|||
23.08.2012, 00:42 | #3 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
Спасибо.
Что - то я неудачный пример привел со вторым таймером. Конечно же в данном случае надо было бы пользоваться 1 таймером А вот как например быть в том случае, если добавление записи происходит по нажатии на кнопку. Есть возможность получения конфликта? Если по прожнему учитывать, что 1 таймер обращается к таблице бд. Последний раз редактировалось Базиля; 23.08.2012 в 00:47. |
23.08.2012, 01:09 | #4 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
Я думаю, что конфликта не должно быть.
|
23.08.2012, 02:07 | #5 |
gcc 4.7.1 Opensuse
Пользователь
Регистрация: 07.03.2012
Сообщений: 22
|
Конфликта не будет, если спать спокойно все равно не получается можно буллеву переменную переключать во время считывания и возвращать после. А перед нажатием на запись поставить проверку если false то sleep и goto к началу если
|
23.08.2012, 02:07 | #6 |
Форумчанин
Регистрация: 30.01.2009
Сообщений: 418
|
1) а зачем так быстро? 5-10 сек думаю бы хватило
2) Для таймера надо объявить несколько переменных которые отвечают за состояние "запроса". То есть если запрос еще выполняется, то процедура таймера завершается через exit() и запросов не выполняет. |
24.08.2012, 03:36 | #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 |