Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пытаюсь сравнить дату из базы с системной и выдать сообщение. [D3, Paradox]


vich ©   (2002-07-25 02:28:00) 

В базе данные в виде даты, нужно найти дату рождения и выдать сообщение о том,что у человека сегодня день рождения.


Locky 2   (2002-07-29 11:04:00) [1]

А не проще для новичка будет создать в базе данных отдельные поля: Brith_Day, Brith_Month, Brith_Year. И изгалятся с ними по полной программе. (Честно говоря не помню, что бы во встроенном SQL была функция EXTRACT)


ЮЮ   (2002-07-29 03:47:00) [2]

>Подскажите, я должен создать базу в которой только BirthDay, в которой только месяц и день?

BirthDay - поле типа DateTime (Date), отсюда и EXTRACT(DAY FROM BirthDay) - функция извлечения дня из даты

>И где писать это:
Query.SQL.Text=
"SELECT * from SomeTable
where EXTRACT(DAY FROM BirthDay)=:DD
and EXTRACT(MONTH FROM BirthDay)=:MM" ?

В свойсве SQL компонента TQuery

>>Tabl_my.Locate("Data_roj",Edit1.Text,[loCaseInsensitive,loPartialKey]) then ...
Трудно представить, что такое loPartialKey для поля типа Дата и как указывать при этом в Edit1.Text



vich   (2002-07-27 15:34:00) [3]

>> if Tabl_my.Locate("Data_roj",Edit1.Text,[loCaseInsensitive,loPartialKey]) then

Попробую применить.


NNH   (2002-07-27 11:46:00) [4]

У тебя должна быть написана маленькая прога, которая запускается при загрузке системы. При загрузке должно появиться окно (форма) в которой ты сам или программно в виде параметра для запроса будет передаваться системная дата. Или без запроса будет осуществлен поиск в таблице. В таблицу можешь вносить все что хочешь: дату, имя и т.д.
Например, процедура может вsглядеть так:
if Tabl_my.Locate("Data_roj",Edit1.Text,[loCaseInsensitive,loPartialKey]) then
Application.MessageBox("Есть именинник!",
"Информация",mb_IconInformation+mb_Ok)
else
Application.MessageBox("День прошел зря, именинников нет!",
"Информация",mb_IconInformation+mb_Ok);


vich   (2002-07-27 01:43:00) [5]

>>Кажется, можно и проще, через LookUp
Как, если не секрет?


TiredDmitry   (2002-07-27 01:12:00) [6]

Кажется, можно и проще, через LookUp, правда, он ищет только строгое соответствие.


vich   (2002-07-27 00:32:00) [7]

>>3. Найти записи в БД
Не могу разобраться, так как не силен.
Подскажите, я должен создать базу в которой только BirthDay, в которой только месяц и день?
И где писать это:
Query.SQL.Text=
"SELECT * from SomeTable
where EXTRACT(DAY FROM BirthDay)=:DD
and EXTRACT(MONTH FROM BirthDay)=:MM" ?


vich   (2002-07-26 14:30:00) [8]

Спасибо за подсказку.
1. Пытаюсь писать самостоятельно, но с этим пока проблемы, так как новичок.



ЮЮ   (2002-07-26 03:09:00) [9]

Чтобы программа находила в базе данных дату рождения и выдавала сообщение необходимо:
1. Уметь писать программы

"Смотрим на календарь"
2. DecodeDate(Now(),Year, Month, Day);


3. Найти записи в БД

Query.SQL.Text=
"SELECT * from SomeTable
where EXTRACT(DAY FROM BirthDay)=:DD
and EXTRACT(MONTH FROM BirthDay)=:MM";

4.Подставляем параметры
Query1.Params[0].Value:=Day;
Query1.Params[1].Value:=Month;
Query1.Open;
if Query1.RecordCount>0 then Application.MessgeBox(...);

5. Найденные записи отображаем в DBGrid-е


vich   (2002-07-25 23:56:00) [10]

Как сделать, что бы программа находила в базе данных дату рождения и выдавала сообщение?


ЮЮ   (2002-07-25 05:03:00) [11]

Одни повествовательные предложения.
Вопрос то в чём? Или в чём проблема?


Наверх

Титульная страница Поиск, карта сайта Написать письмо