Форум программистов, компьютерный форум CyberForum.ru

Как заставить прогу на с++ ждать новые записи из БД - C++

Войти
Регистрация
Восстановить пароль
 
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
05.07.2011, 12:09     Как заставить прогу на с++ ждать новые записи из БД #1
Нужно чтобы прога на с++ ждала новых записей в БД
и если они поступят производила с ними кое какие действия
Вопрос в том как именно прога должна ждать эти записи

сейчас додумался только до того чтобы сделать вечный цикл
с помощью оператора goto и поставить задержку в цикле на пару секунд с помощью sleep

какие еще есть варианты решения моей проблемы ведь везде пишут что использование goto плохо ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.07.2011, 12:15     Как заставить прогу на с++ ждать новые записи из БД #2
Зачем здесь цикл вообще...
Поставить cin.get() например, и прога будет ждать, пока что-нибудь не введут.
Метки здесь ни к чему, но иногда их можно использовать. Вообще их стали считать плохим стилем после того, как их закритиковал Дейкстра =)
Bers
Заблокирован
05.07.2011, 12:17     Как заставить прогу на с++ ждать новые записи из БД #3
sleep() то зачем делать?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
05.07.2011, 12:19     Как заставить прогу на с++ ждать новые записи из БД #4
Цитата Сообщение от nill Посмотреть сообщение
сделать вечный цикл с помощью оператора goto
А делать вечный цикл с помощью операторов цикла уже не кошерно?
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
05.07.2011, 12:22  [ТС]     Как заставить прогу на с++ ждать новые записи из БД #5
diagon,
кто будет вводить ? прога должна работать полностью автоматически


Bers,
Чтобы не долбилась к базе данных все время


mimicria,
А это как можно пример? и вообще идея с вечным циклом сама по себе правильная ?
Bers
Заблокирован
05.07.2011, 12:24     Как заставить прогу на с++ ждать новые записи из БД #6
diagon, вот такой вопрос к вам:

Можно ли как нибудь сопоставлять потокам что нибудь своё?

Например, объявить поток ввода/вывода где нибудь. Запиндюрить туда что нибудь своё (объект какой нибудь)

А потом, где-то совсем другом месте, на хз каком то уровне абстракции вытащить из этого потока запиндюренный объект?

Интересует конкретно, как при помощи потоков осуществлять транспортировку данных из одного слоя абстракции (а ещё лучше - из одного процесса) в совершенно другой.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
05.07.2011, 12:28     Как заставить прогу на с++ ждать новые записи из БД #7
Цитата Сообщение от nill Посмотреть сообщение
А это как можно пример?
while (условие) { действия }
Цитата Сообщение от nill Посмотреть сообщение
и вообще идея с вечным циклом сама по себе правильная ?
Поскольку я чаще всего пишу на BCB, я бы вместо цикла использовал таймер
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.07.2011, 12:29     Как заставить прогу на с++ ждать новые записи из БД #8
Цитата Сообщение от nill Посмотреть сообщение
кто будет вводить ? прога должна работать полностью автоматически
А как данные в бд будут появляться? Какая среда программирования вообще?

Bers, хм... никогда не интересовался. И вообще, если вы считаете меня экспертом, то вы ошибаетесь =)
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
05.07.2011, 12:31  [ТС]     Как заставить прогу на с++ ждать новые записи из БД #9
mimicria,
что такое таймер ?
можно пример

Добавлено через 1 минуту
diagon,
данные в бд будут появляться от другой проги в которую уже вводят руками
среда программирования VS2008
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
05.07.2011, 12:37     Как заставить прогу на с++ ждать новые записи из БД #10
Цитата Сообщение от nill Посмотреть сообщение
что такое таймер ?
можно пример
Использование таймера
Bers
Заблокирован
05.07.2011, 12:49     Как заставить прогу на с++ ждать новые записи из БД #11
Цитата Сообщение от diagon Посмотреть сообщение
Bers, хм... никогда не интересовался. И вообще, если вы считаете меня экспертом, то вы ошибаетесь =)
Просто я знаю, что можно))
Но я нигде не смог найти информацию. Во всех книгах о потоках пишут примерно одинаково, и на уровне новичка - считать строку, вывести строку в консоли....

Где бы вот найти материал по углубленному изучению потоков...
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
05.07.2011, 12:58     Как заставить прогу на с++ ждать новые записи из БД #12
Цитата Сообщение от nill Посмотреть сообщение
Нужно чтобы прога на с++ ждала новых записей в БД
Для того чтобы твоя прога ждала новых записей ей нужно уведомление от БД(шутка) или от другой программы если она находиться на одной машине то через файл отображаемый на память общаться процессы могут если в локалке то другой способ нужен. Или придёться постояно конектиться к базе, для этого лучше в базе завести таблицу с одним столбцом тип дата - последнего обновления с другой программы когда в ручную данные вводишь то в это поле делаешь обновление, а та прога которая ждёт проверяет это поле с датой через ну где-то 10-30 секунд на твоё усмотрение, сравниваешь дату со своей считанной датой с предыдущего запроса если дата обновилась то начинаешь что нибудь делать с БД.
C++
1
2
3
4
5
6
while(1) {
 
   ...  // тут код
 
   Sleep(15000);  // 15  - секунд
}
Вообще что за БД, триггером нельзя обойтись или тебе для внешнего пользования нужны данные с БД.
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
05.07.2011, 19:12  [ТС]     Как заставить прогу на с++ ждать новые записи из БД #13
xAtom,
БД Postgres
почитал про триггер

как бы он, если правильно понял, делает что то внутри БД

А мне надо чтобы после того как поступят новые данные в БД, с++ прога которая их ждет произвела кое какие расчеты и записала результат в БД
думаю тут триггер не поможет ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2011, 19:46     Как заставить прогу на с++ ждать новые записи из БД
Еще ссылки по теме:

Как заставить отобразиться символы?! C++
C++ Как заставить работать прогу без Visual Studio?
Как заставить поток ждать в некоторых ситуациях C++
C++ не знаю как заставить работать
Как заставить работать do while C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Bers
Заблокирован
05.07.2011, 19:46     Как заставить прогу на с++ ждать новые записи из БД #14
я конечно могу ошибаться, потому что для меня это неизученная область (я просто не сталкивался с подобными задачами), но возможно вам стоит посмотреть в сторону <signal.h>

И я даже предлагаю вам ознакомится с материалом по этой ссылочке:
http://icmp.ru/man/MAN/SIGNAL.htm

Добавлено через 8 минут
о кстати, на викки есть неплохое описание

http://ru.wikipedia.org/wiki/Signal.h
Yandex
Объявления
05.07.2011, 19:46     Как заставить прогу на с++ ждать новые записи из БД
Ответ Создать тему
Опции темы

Текущее время: 06:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru