C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Работа с базами данных в C++Builder
>
Создание органайзера
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Создание органайзера (Прочитано 4089 раз)
evgen-20058
Участник
Сказали спасибо: +1/-0
Offline
Сообщений: 11
Создание органайзера
«
:
25 Май 2011, 00:11:46 »
Помогите с моей проблемой....
имеется таблица с полем "время".
таблица создана при помощи MS Access.
таб. События(ADOevents)
0:Событие:Текстовый;
1:Описание:Текстовый;
2:Дата:Текстовый;
3:Время:Текстовый;
4:Напоминание:Текстовый;//т.е. за сколько минут напомнить
связей с этой таблицей нет...
Нужно организовать вывод сообщения при наступлении установленного времени суток.. что-то вроде поиска по полю.. весь обработчик прописывал в Timer
Использовал такой код
void __fastcall TForm5::Timer1Timer(TObject *Sender)
{AnsiString search;
DataMod->ADOevents->Filtered=false;
search="Время like '"+DateTimeToStr(Time())+"*'";
DataMod->ADOevents->Filter=search;
DataMod->ADOevents->Filtered=true;
}
и такой
void __fastcall TForm5::Timer1Timer(TObject *Sender)
{TLocateOptions Options;
Options if (DataMod->ADOevents->Locate("Время",DateTimeToStr(Time()),Options)==true){ShowMessage("Напоминание!");}
DBGrid1->SetFocus();
}
при наступлении нужного времени сообщение не выводится..... Помогите решить проблему....
Заранее благодарен....
«
Последнее редактирование: 25 Май 2011, 20:29:58 от evgen-20058
»
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг
Сказали спасибо: +350/-28
Offline
Сообщений: 2181
Re: Создание органайзера
«
Ответ #1 :
25 Май 2011, 15:51:58 »
Честно говоря, код какой-то мутный...
1. Timer1 по умолчанию запущен (Timer1->Enabled=true)?
2. С определенным периодом (Timer1->Interval) необходимо перебирать записи в БД на текущую дату, и проверять, не наступили ли уже заданные события
Записан
evgen-20058
Участник
Сказали спасибо: +1/-0
Offline
Сообщений: 11
Re: Создание органайзера
«
Ответ #2 :
25 Май 2011, 17:48:17 »
1.да.
2.тоже верно.. смысл как в будильнике...наступает время и появляется сообщение...interval=1000, т.е. 1 сек...
Если с кодом чета не так, исправте или предложите альтернативный
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг
Сказали спасибо: +350/-28
Offline
Сообщений: 2181
Re: Создание органайзера
«
Ответ #3 :
25 Май 2011, 18:06:09 »
Больше данных предоставьте - скрипт создания таблицы с описаниями полей и название БД как минимум. Иначе получите псевдокод.
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг
Сказали спасибо: +350/-28
Offline
Сообщений: 2181
Re: Создание органайзера
«
Ответ #4 :
26 Май 2011, 12:33:31 »
Мда, а как же ключевое поле и дата/время напоминания? Откуда программа знает, от какой временной точки отсчитывать те самые "т.е. за сколько минут напомнить"?
Записан
Lilo
Участник
Сказали спасибо: +17/-6
Offline
Сообщений: 253
Re: Создание органайзера
«
Ответ #5 :
26 Май 2011, 15:11:13 »
evgen-20058
вы хоть понимаете что вам пишут?
если у вас в базе одни текстовые поля даже для чисел, даты и времени то это не есть хорошо.
вам нужно базу привести в соответствие, а уж потом всё остальное...
Записан
evgen-20058
Участник
Сказали спасибо: +1/-0
Offline
Сообщений: 11
Re: Создание органайзера
«
Ответ #6 :
28 Май 2011, 02:22:42 »
ТЕМА ЗАКРЫТА ПРОБЛЕМА РЕШЕНА
Записан
evgen-20058
Участник
Сказали спасибо: +1/-0
Offline
Сообщений: 11
Re: Создание органайзера
«
Ответ #7 :
17 Июнь 2011, 01:17:28 »
пользуйтесь кому надо.....
//ВРЕМЯ ------>>>>>>
AnsiString allTime, allData, allDataTime, h_, m_, s_, y_, mes_, d_;
unsigned short int h, m, s, ms, y, mes, d ;
TDateTime DT = Now();
DecodeDate(DT,y,mes,d);
DecodeTime(DT,h,m,s,ms);
// ФОРМАТИРОВАНИЕ ВРЕМЕНИ------>>>>>>
if (h else{h_=IntToStr(h);}
if (m else{m_=IntToStr(m);}
if (s else{s_=IntToStr(s);}
// //ФОРМАТИРОВАНИЕ ДАТЫ---y,mes,d--------->>>>>>>>>>>
if (mes else{mes_=IntToStr(mes);}
if (d else{d_=IntToStr(d);}
//
//Вывод allDataTime
allData=d_+"."+mes_+"."+IntToStr(y);
allTime=h_+":"+m_+":"+s_;
allDataTime=allData+" "+allTime;
//
//ФИЛЬТР
AnsiString search;
DataMod->ADOevents->Filtered=false;
search="Время like '"+allDataTime+"*'";
DataMod->ADOevents->Filter=search;
DataMod->ADOevents->Filtered=true;
//ПРОВЕРКА УСЛОВИЯ И ЗАПОМИНАНИЕ ИНДЕКСНОГО ПОЛЯ
AnsiString temp="";
temp=DataMod->ADOevents->Fields->Fields[3]->AsString;
if (temp!="") ShowMessage("В " + temp + " у Вас \n"+ DataMod->ADOevents->Fields->Fields[0]->AsString+".");
Записан
wowik9905
новенький
Сказали спасибо: +0/-0
Offline
Сообщений: 1
Re: Создание органайзера
«
Ответ #8 :
31 Май 2015, 18:45:26 »
Здравствуйте. А можно ли вас попросить скинуть сам проект? А то я так не могу разобраться
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам
Загружается...