![]() |
|
|
#1
|
|||
|
|||
|
Народ. ай нид хэлп. база sql. Нужно сделать отчет из базы по дате. Начальная дата datetimepicker1, конечная datetimepicker2. Все понятно что нужно селектом фром и т.д. а вот что написать после where Date=...не знаю. подскажите пожалуйста
|
|
#2
|
||||
|
||||
|
|
|
#3
|
||||
|
||||
|
Where Date >= StartDate AND Date <= EndDate
|
|
#4
|
|||
|
|||
|
Цитата:
а как StartDate присвоить значение Datetimepicker1? |
|
#5
|
||||
|
||||
|
Код:
datetimepickler.date |
|
#6
|
|||
|
|||
|
Цитата:
т.е. StartDate:=datetimepickler.date? а как в Var объявить Startdate? каким типом? |
|
#7
|
||||
|
||||
|
Код:
Query.sql.text:='SELECT * FROM table WHERE date >= ' + datetostr(DateTimePickler1.date) + ' AND date <= ' + datetostr(DateTimePickler2.date); Query.open; |
|
#8
|
|||
|
|||
|
Цитата:
ругается на DateTimePickler1 пишет Undeclared Identifier |
|
#9
|
||||
|
||||
|
Жесть...
Не копируй тупо, там в названии ошибка, пиши DateTimePicker По памяти писал, че-то думал там l после k |
|
#10
|
|||
|
|||
|
Цитата:
пол дня уже с этим сижу, вот и не заметил... теперь пишет что неправильный синтаксис около '2013' |
|
#11
|
|||
|
|||
|
Цитата:
Угу, дату надо конвертировать в строку и квотить. Но тут вылезут разные другие бяки, типа формата, разного на клиенте и сервере. Лучше передавай через параметры: Код:
Query.sql.text:='SELECT * FROM table WHERE date between :startdate AND :enddate ';
Query.ParamByName('startdate').AsDateTime :=DateTimePickler1.date;
Query.ParamByName('enddate').AsDateTime :=DateTimePickler2.date;
Query.open;Только посмотри, ParamByName может быть у Params, а не напрямую у Query... |
|
#12
|
|||
|
|||
|
Цитата:
пытался так сделать...у меня после Query.ParamByName('startdate'). не дает выбрать AsDateTime. почему может быть? |
|
#13
|
||||
|
||||
|
Цитата:
ну можно и не квотить, если про quotedtostr, т.к. циферки и даты мускл хавает без кавычек (только не надо так в веб-программировании делать, там лучше все в кавычки))) формат дат можно привести к одному с помощью функции formatdatetime... но параметрами, конечно же, лучше (наверное ) |
|
#14
|
|||
|
|||
|
Вот код для разных технологий доступа к БД (Delphi7):
Код:
// BDE
Query1.ParamByName('param_name').AsDateTime := DateTimePicker1.Date;
// ADO
ADOQuery1.Parameters.ParamByName('param_name').Value := DateTimePicker1.Date;
// IBX
IBQuery1.ParamByName('param_name').AsDateTime := DateTimePicker1.Date;
// dbExpress
SQLQuery1.ParamByName('param_name').AsDateTime := DateTimePicker1.Date;Могу еще посмотреть в XE3. Но там, вроде, ничего нового нет, а FireDAC у меня нет. В ODAC (для Оракла), если мне память не изменяет, так же, как и в BDE. |
|
#15
|
|||
|
|||
|
Спасибо, помогло!
|