Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2015, 19:29   #1
Loqwer78rus
Пользователь
 
Регистрация: 24.03.2014
Сообщений: 60
Вопрос Работа с датами в базе данных

Делаю форму на прием обучающихся. Вписываю в edit'ы фамилию, имя, отчество, дату рождения (Если справки имеются то данные переносятся в таблицу) Если нет то false (данные не добавляются) С этим я вроде как справился.
Мне нужно чтобы еще проверял по годам пригодность. Если младше 18 и старше 70 то на учебу не принят. Помогите пожалуйста. Как это реализовать. Может я не в ту тему залез ? Но работаю с mysql

Код:
procedure TForm7.Button2Click(Sender: TObject);
var flag: Boolean;
  fam,name,otch,rojd:string;
  d:tDATE;
begin
fam:=Edit1.text;
name:=Edit2.text;
otch:=Edit3.text;
d:=StrToDate(Edit4.Text);
rojd:=FormatDateTime('yyyy-mm-dd',d);
  flag:=false;
 
if (Combobox1.text='Имеется') and (Combobox2.Text='Имеется') and
 (Combobox1.text='Имеется') and (CheckBox1.Checked=True)
 then  flag:=true;

if (flag=true) then (Label10.Caption:='Принят')
else (Label10.Caption:='Не принят');

if(flag=true) then begin

Form2.ADOQuery1.SQL.Clear;

Form2.ADOQuery1.SQL.Add('Insert into users set Familiya='+#39+fam+#39+', Name='+#39+name+#39+',Otchestvo='+#39+otch+#39+', Data_rojd='+#39+rojd+#39+'');
Form2.ADOQuery1.ExecSQL;

Form2.DBGrid1.DataSource.DataSet.Active:=false;
Form2.DBGrid1.DataSource.DataSet.Active:=true;
end;
Loqwer78rus вне форума Ответить с цитированием
Старый 11.06.2015, 20:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
uses DateUtils...
...
yb:integer;
...
d:=StrToDate(Edit4.Text);
yb:=YearsBetween(d,now);
if not (yb in [18..70]) then Либо молод, либо стар.
Идея ясна?

P.S. Кстати я бы Эдит заменил на MaskEdit с маской типа 99.99.9999, и в ShortDate задал бы формат dd.mm.yyyy. Так пользователю удобнее. Мы всетки к германской дате привыкли.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2015, 22:32   #3
Loqwer78rus
Пользователь
 
Регистрация: 24.03.2014
Сообщений: 60
По умолчанию

Цитата:
Идея ясна?
Да. Спасибо большое
Loqwer78rus вне форума Ответить с цитированием
Старый 14.06.2015, 00:33   #4
Loqwer78rus
Пользователь
 
Регистрация: 24.03.2014
Сообщений: 60
По умолчанию

Еще возник вопрос. Не хотелось бы создавать новую тему по этому поводу. Код тот же самый. Хотелось бы чтобы кроме вывода - обучающий был "не принят", выводился перечень справок в которых я указал "Отсуствует" в ComboBox. Через ShowMessage можно сделать. Но как проще ? Чтоб 10 условий не прописывать ?

Код:
if (flag=true) then (Label10.Caption:='Принят')
else (Label10.Caption:='Не принят');
Loqwer78rus вне форума Ответить с цитированием
Старый 14.06.2015, 09:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Не понятно... Что за перечень справок? Откуда берется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надо привязать php сайт к базе данных Access и что бы при заполнение формы на сайте данные сохранялись в базе Алёна_))) Microsoft Office Access 2 20.06.2012 12:24
Работа с датами Наташок Помощь студентам 0 27.01.2011 22:16
Работа с датами Alsou Общие вопросы Delphi 3 25.05.2010 13:27
РАбота с датами KNatalia Microsoft Office Excel 3 29.09.2009 14:28
Работа с датами SanekIrk Общие вопросы Delphi 5 11.07.2008 22:01