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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2013, 09:22   #11
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Qry1.SQL.Clear;
это лишнее
и еще, * в запросе - плохой стиль, надо указывать поля конкретно
eval вне форума Ответить с цитированием
Старый 16.10.2013, 09:27   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
остаётся всего одна запись
Уверены что должно быть больше? Возможно время из dtp3.DateTime и dtp4.DateTime мешает, если оно есть там
Цитата:
с одним единственным столбцом
Если их действительно больше одного, то в проге нужно искать причину
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.10.2013, 09:28   #13
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Код:
SELECT * FROM smart WHERE data_zd>=:d1 AND data_zd<=:d2
Вот так должно вывести всю вашу таблицу в диапазоне дат. Какую СУБД используете? Ну и покажите структуру таблицы...
Dozent вне форума Ответить с цитированием
Старый 16.10.2013, 09:38   #14
Liite
позитиффф
Пользователь
 
Регистрация: 14.11.2008
Сообщений: 34
По умолчанию

спасибо Dozent, всё заработало, правда он плюёт на настройки полей, но это уже мелочи, Аватар, да колличество стобцов должно сотаваться тоже, а вот записи должны фильтроваться.
Dozent, СУБД - MS ACCES, просто база с кучей таблиц, зависимости задаются уже в делфях, мастер сорс итп...
Liite вне форума Ответить с цитированием
Старый 16.10.2013, 09:41   #15
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Вы бы таблицу показали сразу многое понятно стало... Тип поля покоторому фильтруете какой? Date или DateTime? Что вы имеете ввиду под зависимостями?
Dozent вне форума Ответить с цитированием
Старый 16.10.2013, 09:55   #16
Liite
позитиффф
Пользователь
 
Регистрация: 14.11.2008
Сообщений: 34
По умолчанию

тип полей по которым фильтруется Date\Time, под зависимостями я имею в виду связи таблиц между собой, они в принципе живут отдельно друг от друга
Liite вне форума Ответить с цитированием
Старый 16.10.2013, 11:30   #17
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Ну тут я по крайней мере могу сказать, что если нет необходимости учитывать время то тип полей нужно сделать Date (впринципе не критично, просто параметр надо правильно передавать не просто дату а дату+время) ну и связи между таблиц нужно делать полюбому в СУБД, в акцесе там это всё очень удобно сделано, для чего вам замарочки со связами таблиц в делфи низнаю, никогда в делфи не делал связи между таблицами
Dozent вне форума Ответить с цитированием
Старый 17.10.2013, 01:16   #18
Liite
позитиффф
Пользователь
 
Регистрация: 14.11.2008
Сообщений: 34
По умолчанию

просто знакомство с БД началось с парадокса, а там максимум можно было назначить мастер филды, а остольное приходилось доделывать в дельфи, ну потом уже так и повелось..
и учитывать при поиске нужно только дату, ибо время в поля не пишится, по крайне мере в эти , и большое спасибо за помощь, всем кто откликнулся ))

Последний раз редактировалось Liite; 17.10.2013 в 01:21.
Liite вне форума Ответить с цитированием
Старый 18.10.2013, 23:57   #19
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Liite Посмотреть сообщение
всем доброго дня, решил написать сюда, что бы не хламить на форуме.
собственно проблема в том что, решил тоже воспользоваться SQL-ом для фильтрации данных по диапазону дат, если точнее то взял процедуру отсюда и просто изменил имена полей. Но работает оно как то странно, в результате запроса у меня остаётся всего одна запись с одним единственным столбцом. вот текст исходника, хотя от вышеприведённого он отличается мало.

Код:
Qry1.Active := false;
Qry1.SQL.Clear;
Qry1.sql.text:='SELECT * FROM [smart] WHERE (data_zd>=:D1) AND (data_zd<=:D2)';
Qry1.Parameters.ParamByName('d1').value:=dtp3.DateTime;
Qry1.Parameters.ParamByName('d2').Value:=dtp4.DateTime;
{qry1.Open;
Qry1.Edit;
ds1.Edit;}
Qry1.Active := true;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.
Ваши запрос должен работать так ! Смотрите внимательно код

Код HTML:
procedure TfrmPanel.btFilterClick(Sender: TObject);
var
 d1, d2 : TDatetime;
 begin
    Qry1.Active := false;
    Qry1.SQL.Clear;
    Qry1.sql.Add('SELECT *  FROM  Таблица  WHERE  data_zd  BETWEEN :first_date AND :last_date');
    d1 := trunc(DateTime1)
    d2 := trunc(DateTime2)
    Qry1.Parameters.ParamByName('first_date').value:=  d1;
    Qry1.Parameters.ParamByName('last_date').Value:= d2;
   Qry1.Active := true;
end;
xxbesoxx вне форума Ответить с цитированием
Старый 06.11.2013, 04:20   #20
Liite
позитиффф
Пользователь
 
Регистрация: 14.11.2008
Сообщений: 34
По умолчанию

Всем большое спасибо за помощь.
Всё заработало.
правда пришлось -1 день в начале диапазона, по скольку SQL почему то думает, что начальный день не попадает под диапазон фильтрации. В таком виде всё работает прекрасно.
Код:
ds1.DataSet :=qry1;
Qry1.Active := false;
dtp3.DateTime:=  (incday(dtp3.DateTime,-1)); // отнимаем день
Qry1.sql.text:='SELECT * FROM smart WHERE data_zd>=:d1  AND data_zd<=:d2';
Qry1.Parameters.ParamByName('d1').value:=dtp3.DateTime;
Qry1.Parameters.ParamByName('d2').Value:=dtp4.DateTime;
Qry1.Active := true;
dtp3.DateTime:=  (incday(dtp3.DateTime,+1)) // прибавляем его на маесто, что бы у пользователя не возникало лишних вопросов...
Хотя лучшее было бы все эти игры с плюсами и минусами делать в переменных...
Liite вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтр Трям Microsoft Office Excel 1 03.06.2012 14:21
Фильтр StdentOfCollege Помощь студентам 1 30.03.2010 17:32
Фильтр Машенька Microsoft Office Access 1 16.12.2009 20:27