Страница 1 из 1

фильтрация

Добавлено: 29 сен 2005, 19:17
Элешки
Всем привет!
Пожалуйста, объясните мне, как сделать фильтрацию данных в Delphi? Мне, в частности, надо отфильтровать данные по времени.
У меня есть таблица по сделанным звонкам: дата(date), время(time), линия(line), номер(number) и продолжительность разговора(duration). Мне надо отфильтровать все звонки,сделанные , допустим, с 1.09.05 по 29.09.05. Как мне это сделать?
Очень прошу помочь! Буду всем признательна.

Добавлено: 29 сен 2005, 19:46
kdv
select * from table
where dt between '01.09.2005' and '29.09.2005'

пойдет?

Добавлено: 29 сен 2005, 20:02
Merlin
Это не в Дельфи.

Добавлено: 29 сен 2005, 20:14
kdv
а ты докажи :) запрос-то из Delphi идет. Вообще на такие вопросы отвечать опасно. Ответишь, а тебе потом - а чего у меня так тормозит, или еще что. Откуда ж я знаю, человек с dbf пришел, и отфильтровать пытается, или наоборот, собаку съел на sql, а тут его на Delphi посадили...

Добавлено: 29 сен 2005, 20:34
Merlin
kdv писал(а): Вообще на такие вопросы отвечать опасно.
Вот и я так думаю. Тебя в аське не видать, я здесь скажу - ты луччи почитай нитку [FFcommittee] Another Possible Sponsor for the Conference? Что в мире-то творицца ;)

Добавлено: 30 сен 2005, 08:18
TAV
если в Delphi, тады так:

1. Для активизации фильтра
DataSet.Filtered := true
2. В обработчике фильтра OnFilterRecord
Accept := (DataSet.FieldByName('DT').AsDateTime > StrToDateTime('01.09.05 00:00:00')) and (DataSet.FieldByName('DT').AsDateTime < StrToDateTime('29.09.05 23:59:59'))

Добавлено: 30 сен 2005, 10:29
kdv
Что в мире-то творицца
я, к сожалению углядел только организацию прогулок по Праге и тест IB/FB от Better Office. Не все письма получал, большинство удалил не читая, увы.

Добавлено: 30 сен 2005, 11:18
Элешки
TAV писал(а):если в Delphi, тады так:

1. Для активизации фильтра
DataSet.Filtered := true
2. В обработчике фильтра OnFilterRecord
Accept := (DataSet.FieldByName('DT').AsDateTime > StrToDateTime('01.09.05 00:00:00')) and (DataSet.FieldByName('DT').AsDateTime < StrToDateTime('29.09.05 23:59:59'))
А если я хочу задать фильтрацию не в процессе проэктирования, а во время выполнения программы? Допустим, я поставила 2 компонента DateTimePicker, один показывает с какой даты надо делать фильтрацию, второй- по какую. Я нажимаю кнопку Show и он мне в DBGrid показывает результат. Как мне описать обработчик события OnClickButtonShow?

Добавлено: 30 сен 2005, 11:35
kdv
может, лучше купить книжку, хотя бы Мир InterBase ?

Добавлено: 03 окт 2005, 09:14
Ivan_Pisarevsky
где-нидь заранее
MyIBQuery.sql.text := 'select * from table where dt between :date_from and :date_to'

по нажатию на кнопку
MyIBQuery.Close;
MyIBQuery.ParamByName('date_from').asdatetime:=DateTimePicker_from.DateTime;
MyIBQuery.ParamByName('date_to').asdatetime:=DateTimePicker_to.DateTime;
MyIBQuery.Open;

Исключительно для прекрасной дамы, а так вообще-то RTFM. :)