![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как в sql-запросе отфильтровать по дате [D7, XP]
sipsik © (2007-02-25 16:37:00)Здравствуйте!
Подскажите, как при подключении БД *.mdb с помощью компонента ADOQuery выводить только те записи, у которых в поле [дата поставки] дата меньше текущей?
у меня
'SELECT * FROM [заказ на поставку] where
"Дата поставки"='+datetostr(date)
пишет ошибку, что неправильный синтаксис выражения
[дата поставки]=25.02.2007
sipsik (2007-02-26 11:13:00) [1]Вчера с ребятишками занималась, не написала, как получилось. А получилось вот так:
fMain.ADOQuery1.Parameters[0].Value:=date;
QuerySQL := 'SELECT * FROM [заказ на поставку] where "Дата поставки"<:data';
fMain.ADOQuery1.SQL.Add(QuerySQL);
Получилось с параметрическим запросом.
Спасибо за подсказку.
Anatoly Podgoretsky (2007-02-25 17:27:00) [2]> sipsik (25.02.2007 17:18:10) [10]
Боюсь ошибиться, но вроде "Дата поставки" это не имя поля, а литерал, попробуй квадратные скобки.
SergP_n/a (2007-02-25 17:23:00) [3]
> sipsik (25.02.07 17:09) [8]
> я не знаю, как использовать параметры
> я писала
>
> 'SELECT * FROM [заказ на поставку] where
> "Дата поставки"<25/02/2007'
>
> ошибки нет, но не находит ничего
Формат не тот... Лучше используй параметрические запросы чтобы не заморачиваться с форматом даты...
sipsik (2007-02-25 17:18:00) [4]я написала
'SELECT * FROM [заказ на поставку] where
"Дата поставки"<'+quotedstr('25.02.2006')
и пишет теперь несоответствие типов данных выражению условия отбора
Anatoly Podgoretsky (2007-02-25 17:13:00) [5]> sipsik (25.02.2007 17:09:08) [8]
Сказано было про кавычки, а у тебя 25 поделить на 2, поделить на 2007, это дата очень близка к нулевой 1.01.1900
sipsik (2007-02-25 17:09:00) [6]я не знаю, как использовать параметры
я писала
'SELECT * FROM [заказ на поставку] where
"Дата поставки"<25/02/2007'
ошибки нет, но не находит ничего
Anatoly Podgoretsky (2007-02-25 17:04:00) [7]И если параметры не будешь использовать, то QuotedStr(datetostr(date)), литералы должны быть в кавычках, но без параметров все равно будут рано или поздно проблемы.
Anatoly Podgoretsky (2007-02-25 17:02:00) [8]> sipsik (25.02.2007 16:50:04) [4]
Вот это уже другое дело используй критерий отбора Where D<:D
Virgo_Style (2007-02-25 17:00:00) [9]Используй параметры и не забывай, что слову меньше соответствует значок "<", а не "="
sipsik (2007-02-25 16:50:00) [10]я хотела сказать, как правильно написать sql-строку при активации запроса, чтобы в dbgrid у меня вывелись только те записи из таблицы, у которых дата в поле "дата поставки" меньше текущей?
Anatoly Podgoretsky (2007-02-25 16:48:00) [11]> sipsik (25.02.2007 16:44:02) [2]
Что как? Как сделать то чего нет в природе? Ну так это к магам.
sipsik (2007-02-25 16:44:00) [12]но все же как?
Anatoly Podgoretsky (2007-02-25 16:40:00) [13]В SQL запросе нет фильтров, это привелегия клиентской стороны.