|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите пожалуйста. нужно сделать запрос из связанной таблицы на выборку по времени
В базе несколько таблиц, многие связаны между собой.
мне нужно вывести в DBGrid запрос где записи должны выводиться в соответствии со значением DateTimePicker1 и DateTimePicker2 им я присваиваю первый день месяца и последний день месяц. Т.е. Мне нужно вывести список заказов за текущий месяц. Обычная фильтрация таблицы не помогает, т.к. Эта таблица у меня подчиненная (она связана с таблицей клиентов) в запросах я совсем плохо понимаю. перерыла кучу всего, все что пробовала, ничего не работает толком Код:
SELECT * FROM ZakazPoligraf procedure TForm26.FormShow(Sender: TObject); var FirstDay, LastDay: TDateTime; begin FirstDay := EnCodeDate(YearOf(Date), MonthOf(Date), 1); LastDay := FirstDay + DaysInMonth(Date) - 1; DateTimePicker1.Date:= FirstDay; DateTimePicker2.Date:= LastDay; QueryPoliMes.active:= false; QueryPoliMes.SQL.Clear; QueryPoliMes.SQL.Add('WHERE Data >= '+QuotedStr(Datetostr(DateTimePicker1.Date))+ ' and Data<='+QuotedStr(Datetostr(DateTimePicker2.Date))); QueryPoliMes.Open; QueryPoliMes.Active:=true; Последний раз редактировалось lmikle, 10.03.2018 в 20:47. |
#2
|
|||
|
|||
Ну, в принципе, все правильно сделал.
Только лучше использовать параметры запроса. Пусть запрос в компоненте выглядит так: Код:
SELECT * FROM ZakazPoligraf WHERE Data >= :dtFirst and Data <= :dtLast Код:
procedure TForm26.FormShow(Sender: TObject); var FirstDay, LastDay: TDateTime; begin QueryPoliMes.Active:=false; FirstDay := EnCodeDate(YearOf(Date), MonthOf(Date), 1); LastDay := FirstDay + DaysInMonth(Date) - 1; DateTimePicker1.Date:= FirstDay; DateTimePicker2.Date:= LastDay; QueryPoliMes.ParamByName('dtFirst').AsDateTime := DateTimePicker1.Date; QueryPoliMes.ParamByName('dtLast').AsDateTime := DateTimePicker2.Date; QueryPoliMes.Open; end; |