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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2014, 16:40   #1
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию Не работает условие поиска

в коде идет проверка таблицы на наличии записей с текущей датой и выводом сообщения о количестве записей

Код:
begin
   datamodule2.Attestat.Filtered:=false;
   while datamodule2.Attestat.Eof do
   begin
  if datamodule2.Attestat.FieldByName('Data_pereatestat').AsString = DateToStr(Now) then

     datamodule2.Attestat.Filter:= 'Tabel='+('12');
      datamodule2.Attestat.Filtered:=true;
    Showmessage  ('Êîëè÷åñòâî ñîòðóäíèêîâ ='+ IntToSTR(datamodule2.Attestat.recordcount));
    end;

      Showmessage  ('Ñåãîäíÿ íèêîìó íå íàäî ñäàâàòü ýêçàìåíû!!!'{+ IntToSTR(datamodule2.Attestat.recordcount)});

     end;
Scorpuha вне форума Ответить с цитированием
Старый 21.02.2014, 16:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
 if trunc(datamodule2.Attestat.FieldByName('Data_pereatestat').AsFloat) = Date then
не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.02.2014, 16:52   #3
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

не находит записи, хотя в таблице есть записи с полем Tabel=12 и с текущей датой.
Scorpuha вне форума Ответить с цитированием
Старый 21.02.2014, 16:56   #4
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

это все решаемо на уровне SQL

лучше в Attestat передать параметром дату и тогда уже фильтровать
а то и вообще на уровне SQL все посчитать
Пишу на Delphi за еду

Последний раз редактировалось Toxa; 21.02.2014 в 16:59.
Toxa вне форума Ответить с цитированием
Старый 21.02.2014, 16:59   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
begin
   datamodule2.Attestat.Filtered:=false;
     datamodule2.Attestat.Filter:= 'Tabel=12 and Data_pereatestat='+Quotedstr(DateToStr(Date));
      datamodule2.Attestat.Filtered:=true;
   while datamodule2.Attestat.Eof do   begin
    Showmessage  ('Êîëè÷åñòâî ñîòðóäíèêîâ ='+ IntToSTR(datamodule2.Attestat.recordcount));
 datamodule2.Attestat.Next;
    end;
Не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.02.2014, 16:59   #6
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

Цитата:
Сообщение от Toxa Посмотреть сообщение
а в чем собственно вопрос?
или вы похвастаться?

странноватый код, фильтровать таблицу, в которой бегаем по записям, результат будет не предсказуем, можем быстрой выйти из цикла, а можем и не выйти вообще
цикл уже применил для пробы,
Цитата:
Сообщение от Toxa Посмотреть сообщение
как я понял из кода, надо получить кол-во записей на дату и по определенному табелю,
это все решаемо на уровне SQL
а без SQL никак? просто ADOTable filter использовать можно?
Scorpuha вне форума Ответить с цитированием
Старый 21.02.2014, 17:11   #7
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
begin
   datamodule2.Attestat.Filtered:=false;
     datamodule2.Attestat.Filter:= 'Tabel=12 and Data_pereatestat='+Quotedstr(DateToStr(Date));
      datamodule2.Attestat.Filtered:=true;
   while datamodule2.Attestat.Eof do   begin
    Showmessage  ('Êîëè÷åñòâî ñîòðóäíèêîâ ='+ IntToSTR(datamodule2.Attestat.recordcount));
 datamodule2.Attestat.Next;
    end;
Не?

ага, заработало, добавив сообщение о количестве сотрудников
а как можно отбирать записи не конкретному числу в поле Tabel а по всему столбцу пройтись?
Scorpuha вне форума Ответить с цитированием
Старый 21.02.2014, 17:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а по всему столбцу пройтись?
Э-э-эм... не понял...
Может задачу-то опишешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2014, 22:50   #9
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

нужно найти все табельные номера у которых сегодня есть переаттестация
Scorpuha вне форума Ответить с цитированием
Старый 23.02.2014, 23:07   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А, ну так убери Tabel=12 из фильтра.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает условие. Почему? Dmitriy.G Общие вопросы по Java, Java SE, Kotlin 2 03.11.2012 21:41
if условие работает не коректно jasul PHP 2 27.04.2012 16:14
Не работает условие!!! VintProg Общие вопросы C/C++ 5 12.08.2011 04:40
[запрос к Бд] не работает условие nuevegramodelamor PHP 2 26.04.2011 14:17
Условие из поиска artemavd Общие вопросы Delphi 12 28.11.2010 01:42