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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2014, 15:58   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Now не пойдет - дата + время

Код:
dt:=DataSet.FieldByName('Дата').AsDateTime;
Accept:=(dt=Date) or (dt=Date+2) or (dt=Date+4);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.02.2014, 16:13   #12
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

ругается
на


Код:
procedure TDataModule2.ADOQuery1FilterRecord(DataSet: TDataSet;  var Accept: Boolean);
 var dt:TDate;  вот тут ошибку выдает
begin
   dt:=DataSet.FieldByName('Data_pereatestat').AsDateTime;
Accept:=(dt=Date) or (dt=Date+2) or (dt=Date+4);
end;
[Error] Unit2.pas(46): Undeclared identifier: 'TDate'
Scorpuha вне форума Ответить с цитированием
Старый 17.02.2014, 16:22   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Замени на TDateTime
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.02.2014, 16:27   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Scorpuha Посмотреть сообщение
ругается
на
Код:
 var dt:TDate;  вот тут ошибку выдает
[Error] Unit2.pas(46): Undeclared identifier: 'TDate'
согласен с советом Аватар, но вообще ересь какая-то!
Видимо, что-то в новых Delphi поменяли.

в старой Delphi в модуле Controls описано:
Цитата:
Код:
  TDate = type TDateTime;
p.s. чтобы избежать накладок, когда дата в БД хранится вместе со временем, я бы написал так:
Код:
var dt:TDateTime;
begin
  dt:= trunc( DataSet.FieldByName('Data_pereatestat').AsDateTime );
  Accept:=(dt=Date) or (dt=Date+2) or (dt=Date+4);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2014, 16:34   #15
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

у меня храниться просто дата. вот такой вопрос точнее два. можно ли эту процедурку назначить не по событию OnFilterRecord а к нажатию кнопки. и как вывести сообщение о количестве найденных записей. Совсем обнаглел
Scorpuha вне форума Ответить с цитированием
Старый 17.02.2014, 16:53   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И все ради этого? Можно конечно. RecordCount после установки фильтра. А не проще ли запросом это количество получить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.02.2014, 16:57   #17
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

Пробовал Showmessage, не прокатывает. а про запрос было бы чудненько. у меня с запросами дружбы нету, из-за синтаксиса. все эти скобочки, кавычечки, апострофы, вот где почитать про них.
Scorpuha вне форума Ответить с цитированием
Старый 17.02.2014, 17:01   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Коряво это. ADOQuery1FilterRecord должен быть назначен
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
  ADOQuery1.Filtered:=True;
  i:=ADOQuery1.RecordCount;
  ADOQuery1.Filtered:=False;
  ShowMessage(Format('Записей %d',[i]));
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.02.2014, 10:21   #19
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

чуточку подправил добавив строку

Код:
procedure TMainForm.Button3Click(Sender: TObject);
var i: Integer;
begin
  Datamodule2.ADOQuery1.Open;
  Datamodule2.ADOQuery1.Filtered:=True;
  i:=Datamodule2.ADOQuery1.RecordCount;
  Datamodule2.ADOQuery1.Filtered:=False;
  ShowMessage(Format('Çàïèñåé %d',[i]));
end;
и стало ругаться ADOQuery1: missing SQL property
Scorpuha вне форума Ответить с цитированием
Старый 18.02.2014, 10:37   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
missing SQL property
не о чем не говорит? Cам запрос то в ADOQuery нужно поместить.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько дней уже не могу разобраться с кодом... timedo HTML и CSS 1 25.02.2013 09:49
Долгая загрузка форума последние несколько дней Alar О форуме и сайтах клуба 45 08.12.2012 00:20
запуск каждые несколько дней. DeDoK Общие вопросы Delphi 0 02.02.2010 14:09
E-mail почта не работает несколько дней, а спам приходит Alar Свободное общение 3 29.01.2008 16:54