Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.05.2012, 05:43
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию Сравнить даты в БД

Доброго времени суток Уважаемые гуру Delphi.
Имеется база данных с набором стандартных полей
№ ФИО Дата рождения
1 Пупкин С А 15.03.1990
2 Пуcмик П В 10.08.1960
и т д
Бада данных : Access + ADOQuery + DataSource ну и естественно отображаем данные в DBGrid
Как сделать чтоб программа сравнивала дату поля Data (дата рожения) и текущия дату и выдавало сообщение
если даты одинаковы то у человека например сегодня день рожения
Что то типа:
сегоня 15.03.2012 а у Пупкин С А 15.03.1990 др
значит сегодня
В общем реализовать напоминание о том что у человека день рождения.
Ответить с цитированием
  #2  
Старый 02.05.2012, 06:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

На стороне прилодения:

Код:
if MonthOf(ADOQuery.FieldByName('BirthDate').AsDateTime) = MonthOf(Today)  And
   DayOf(ADOQuery.FieldByName('BirthDate').AsDateTime) = DayOf(Today)Then
Begin
...
End;
Ответить с цитированием
  #3  
Старый 02.05.2012, 07:45
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию

Суть такова поле date оно в базе изначально текстовое
в базу заносится дата через DateTimePicker
данные отображены в DBGrid
Мне нужно сделать следующие
например за 2-3 дня до дня рождения данные записывались например в
DBGrid2 или еще куда нибудь чтоб был список именинников.

тоесть
сегодня 02.05.2012
у меня др 05.05.2012
вот чтоб зафтра 03.05.2012 моя программа показала что у меня др через 2 дня
и и т д
Ответить с цитированием
  #4  
Старый 02.05.2012, 08:16
Gribok Gribok вне форума
Новичок
 
Регистрация: 25.09.2009
Сообщения: 53
Репутация: 4
По умолчанию

что то типо такого только чтоб он перезаписовал данные в DBGrid2 если найдено что либо
VAR
\y1,m1,d1,y2,m2,d2:word;
begin
ADOQuery1.First;
DecodeDate(ADOQuery1.FieldByName('äàòà').AsDateTim e,y1,m1,d1);
DecodeDate(Now,y2,m2,d2);
Repeat
\if (d1 = d2) and (m1 = m2) then ShowMessage('Обнаружен ДР') else ShowMessage('Др не найдено');
ADOQuery1.Next;
Until not ADOQuery1.EOF;
Ответить с цитированием
  #5  
Старый 02.05.2012, 14:48
dlis dlis вне форума
Прохожий
 
Регистрация: 02.05.2012
Сообщения: 2
Репутация: 10
По умолчанию

Так INSERT запись в таблицу, связанную с DBGrid2, вообще можно написать хранимую процедуру и выполнять её при запуске программы. я так понимаю, что таблица именинников физически существует?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter