Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

как в sql-запросе отфильтровать по дате   Найти похожие ветки 

 
sipsik   (2007-02-25 16:37) [0]

Здравствуйте!
Подскажите, как при подключении БД *.mdb с помощью компонента ADOQuery выводить только те записи, у которых в поле [дата поставки] дата меньше текущей?

у меня

"SELECT * FROM [заказ на поставку] where
"Дата поставки"="+datetostr(date)

пишет ошибку, что неправильный синтаксис выражения
[дата поставки]=25.02.2007


 
Anatoly Podgoretsky ©   (2007-02-25 16:40) [1]

В SQL запросе нет фильтров, это привелегия клиентской стороны.


 
sipsik   (2007-02-25 16:44) [2]

но все же как?


 
Anatoly Podgoretsky ©   (2007-02-25 16:48) [3]

> sipsik  (25.02.2007 16:44:02)  [2]

Что как? Как сделать то чего нет в природе? Ну так это к магам.


 
sipsik   (2007-02-25 16:50) [4]

я хотела сказать, как правильно написать sql-строку при активации запроса, чтобы в dbgrid у меня вывелись только те записи из таблицы, у которых дата в поле "дата поставки" меньше текущей?


 
Virgo_Style ©   (2007-02-25 17:00) [5]

Используй параметры и не забывай, что слову меньше соответствует значок "<", а не "="


 
Anatoly Podgoretsky ©   (2007-02-25 17:02) [6]

> sipsik  (25.02.2007 16:50:04)  [4]

Вот это уже другое дело используй критерий отбора Where D<:D


 
Anatoly Podgoretsky ©   (2007-02-25 17:04) [7]

И если параметры не будешь использовать, то QuotedStr(datetostr(date)), литералы должны быть в кавычках, но без параметров все равно будут рано или поздно проблемы.


 
sipsik   (2007-02-25 17:09) [8]

я не знаю, как использовать параметры
я писала

"SELECT * FROM [заказ на поставку] where
"Дата поставки"<25/02/2007"

ошибки нет, но не находит ничего


 
Anatoly Podgoretsky ©   (2007-02-25 17:13) [9]

> sipsik  (25.02.2007 17:09:08)  [8]

Сказано было про кавычки, а у тебя 25 поделить на 2, поделить на 2007, это дата очень близка к нулевой 1.01.1900


 
sipsik   (2007-02-25 17:18) [10]

я написала

"SELECT * FROM [заказ на поставку] where
"Дата поставки"<"+quotedstr("25.02.2006")

и пишет теперь несоответствие типов данных выражению условия отбора


 
SergP_n/a   (2007-02-25 17:23) [11]


> sipsik   (25.02.07 17:09) [8]
> я не знаю, как использовать параметры
> я писала
>
> "SELECT * FROM [заказ на поставку] where
> "Дата поставки"<25/02/2007"
>
> ошибки нет, но не находит ничего


Формат не тот... Лучше используй параметрические запросы чтобы не заморачиваться с форматом даты...


 
Anatoly Podgoretsky ©   (2007-02-25 17:27) [12]

> sipsik  (25.02.2007 17:18:10)  [10]

Боюсь ошибиться, но вроде "Дата поставки" это не имя поля, а литерал, попробуй квадратные скобки.


 
sipsik   (2007-02-26 11:13) [13]

Вчера с ребятишками занималась, не написала, как получилось. А получилось вот так:

fMain.ADOQuery1.Parameters[0].Value:=date;
QuerySQL := "SELECT * FROM [заказ на поставку] where "Дата поставки"<:data";
fMain.ADOQuery1.SQL.Add(QuerySQL);

Получилось с параметрическим запросом.
Спасибо за подсказку.



Страницы: 1 вся ветка

Текущий архив: 2007.03.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
2-1172253719
Ivolg
2007-02-23 21:01
2007.03.18
Кодировки


5-1150058152
KIvan
2006-06-12 00:35
2007.03.18
Картинки в заголовках колонок TListView


1-1169504829
Дмитрий Белькевич
2007-01-23 01:27
2007.03.18
Насколько верен следующий код завершения программы:


2-1172177340
Lonix
2007-02-22 23:49
2007.03.18
Исчезновение


2-1172232151
deras
2007-02-23 15:02
2007.03.18
Цветной DBGrid