Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2008, 11:16
elle elle вне форума
Прохожий
 
Регистрация: 08.05.2008
Сообщения: 12
Репутация: 10
Смущение поиск locate по дате

добрый день!
подскажите пожалуйста как осуществить в таблице поиск с помощью locate по дате которая находится в диапазоне от dtp1 и до dtp2?
заранее благодарна.
Ответить с цитированием
  #2  
Старый 21.05.2008, 12:06
Аватар для Appolon
Appolon Appolon вне форума
Новичок
 
Регистрация: 10.01.2008
Адрес: гЕйск
Сообщения: 76
Репутация: 16
По умолчанию

Насколько я помню locate перемещается по набору данных и незнаю как можно будет переместиться к записи в каком-то диапозоне.
Я думаю в Вашем случае лучше использовать фильтрацию данных.
Например:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Table1.Filter:='datn>=01/01/2008 and datn<=01.02.2008';
 Table1.Filtered:=True;
end;
__________________
From VasYa with LoVe...
Ответить с цитированием
  #3  
Старый 21.05.2008, 12:10
elle elle вне форума
Прохожий
 
Регистрация: 08.05.2008
Сообщения: 12
Репутация: 10
По умолчанию

спасибо конечно, но у меня фильтр и поиск отдельно идут...
то есть на фильтр уже все работает как надо.
а вот диапазон даты я заранее не знаю чтобы в коде его прописать можно было, выбираю через TDateTimePicker
Ответить с цитированием
  #4  
Старый 21.05.2008, 12:12
Phedor Phedor вне форума
Начинающий
 
Регистрация: 28.02.2008
Сообщения: 118
Репутация: 21
По умолчанию

Фильтр тормоза большие.
Лучше через запрос сделать
Примерный алгоритм:
var
q: TQuery;
begin
q := TQuery.Create(nil);
q.SQL.Add('select Id from Таблица where Date>=:FromDate and Date<=:ToDate');
q.Params.ParamByName['FromDate'] := С какой даты;
q.Params.ParamByName['ToDate'] := По какую дату;
q.Open;
Table.Locate('Id', q.FieldByName('Id').AsInteger, []);
q.Close;
q.Free;
end;
Ответить с цитированием
  #5  
Старый 21.05.2008, 12:37
Аватар для Appolon
Appolon Appolon вне форума
Новичок
 
Регистрация: 10.01.2008
Адрес: гЕйск
Сообщения: 76
Репутация: 16
По умолчанию

Цитата:
Сообщение от elle
спасибо конечно, но у меня фильтр и поиск отдельно идут...
то есть на фильтр уже все работает как надо.
а вот диапазон даты я заранее не знаю чтобы в коде его прописать можно было, выбираю через TDateTimePicker
После выбора определенных дат добавить фильтр.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Table1.Filter:=Table1.Filter +' and datn>='+DateTimePicker1.date+' and datn<='+DateTimePicker2.date;
 Table1.Filtered:=True;
end;
__________________
From VasYa with LoVe...
Ответить с цитированием
  #6  
Старый 21.05.2008, 12:40
Аватар для Appolon
Appolon Appolon вне форума
Новичок
 
Регистрация: 10.01.2008
Адрес: гЕйск
Сообщения: 76
Репутация: 16
По умолчанию

Цитата:
Сообщение от Phedor
Фильтр тормоза большие.
У меня база примерно в 50 тыс. записей и не тормозит.
__________________
From VasYa with LoVe...
Ответить с цитированием
  #7  
Старый 26.05.2008, 13:18
elle elle вне форума
Прохожий
 
Регистрация: 08.05.2008
Сообщения: 12
Репутация: 10
По умолчанию

ага, пасиба этот кусочек работает))
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:48.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025