Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

select .... where tbl.date between :p1 and :p2 [D6, access]


denis24 ©   (2005-01-25 11:40:00) 

подскажите пожалуста
Какое значение присвоить параметру  p2 если хочу выбрать например с 01.01.2005 и до упора .В независимости от настроек формата даты компа?


Deniz   (2005-01-27 07:35:00) [1]

>Соловьев ©   (26.01.05 14:47) [19]
Я вроде не тормоз, но что-то ...
Имеем пост [8]

...
if dateedit2.date = 0
then Query1.ParamByName('p2').Value := Null
else Query1.ParamByName('p2').AsDateTime := dateedit2.date;
...

пост [9]
>then Query1.ParamByName('p2').Value := Null
then Query1.ParamByName('p2').AsDateTime := Date;
В результате:

...
if dateedit2.date = 0
then Query1.ParamByName('p2').AsDateTime := Date;
else Query1.ParamByName('p2').AsDateTime := dateedit2.date;
...

Что за Date? Текущая? Тогда уж(про "упор"):

...
if dateedit2.date = 0
then Query1.ParamByName('p2').AsDateTime := StrToDate('31.12.9999');
else Query1.ParamByName('p2').AsDateTime := dateedit2.date;
...


Соловьев   (2005-01-26 14:47:00) [2]

>и тут вдруг не нужно тут null. Как это понимать?
читать [9] 8)


Deniz   (2005-01-26 07:34:00) [3]

>Соловьев ©   (25.01.05 13:32) [15]
В вашем же посте [8]
Query1.ParamByName('p2').Value := Null
и тут вдруг не нужно тут null. Как это понимать?
Про "упор" от автора так и нечего сказано не было, поэтому я предложил исключить из where этот самый "упор"


Anatoly Podgoretsky   (2005-01-25 21:20:00) [4]

Упор = 31.12.9999


denis24   (2005-01-25 15:20:00) [5]

Спасибо Deniz   (25.01.05 13:03) [13]


Соловьев   (2005-01-25 13:32:00) [6]

>Query1.ParamByName('p2').Clear;
не нужно тут null. тут же сказано что нужен упор - сегодня.


denis24   (2005-01-25 13:09:00) [7]

получается делать проверку на наличие даты в контроле
если пусто ,то переделываем запрос без даты?


Deniz   (2005-01-25 13:03:00) [8]

>Соловьев ©   (25.01.05 12:38) [8]
Что бы передать в параметр NULL, достаточно

Query1.ParamByName('p2').Clear;

только вот что надо будет выполнить серверу?

select ... from tbl where tbl.date between null and null

и что он вернет?
Вариант: либо формировать запрос на клиенте, типа

Query.SQL.Add('select ... from ... where ...');
if dateedit1.date <> 0 then
 Query1.SQL.Add(' and (tbl.date >= :p1)');
...
if dateedit1.date <> 0 then
 Query1.ParamByName('p1').AsDateTime:=dateedit2.date;

или "иметь" ;-) запрос типа:
select ... from ... where
((:p1 is null) or (tbl.date >= :p1)) and
((:p2 is null) or (tbl.date <= :p2)) and

и в программе

if dateedit1.date = 0 then
 Query1.ParamByName('p1').Clear
else
 Query1.ParamByName('p1').AsDateTime:=dateedit1.date;


Ольга   (2005-01-25 12:55:00) [9]

В DateTimePicker всегда можно выставить дату по умолчанию и не надо никаких проверок... Или я не врубаюсь в проблему.


Соловьев   (2005-01-25 12:50:00) [10]

>Может лучше использовать стандартный для этого компонент
>DateTimePicker.

Так он и юзается.


Ольга   (2005-01-25 12:49:00) [11]

А зачем этот головняк - задавать дату через Edit.
Может лучше использовать стандартный для этого компонент DateTimePicker.


Соловьев   (2005-01-25 12:38:00) [12]

>then Query1.ParamByName('p2').Value := Null
then Query1.ParamByName('p2').AsDateTime := Date;


Соловьев   (2005-01-25 12:38:00) [13]


...
if dateedit2.date = 0
then Query1.ParamByName('p2').Value := Null
else Query1.ParamByName('p2').AsDateTime := dateedit2.date;
...


denis24   (2005-01-25 12:32:00) [14]

конечно не ленимся.
присвоил и не вернуло ничего


Соловьев   (2005-01-25 12:23:00) [15]

>Если в dateedit юзер не выбрал дату и он пустой,то можно просто
>присвоить
>:p1=dateedit1.date ?

Проверить мы конечно ленимся?


denis24   (2005-01-25 12:19:00) [16]

что то я не понимаю....
Если в dateedit юзер не выбрал дату и он пустой,то можно просто присвоить
:p1=dateedit1.date ?


Reindeer Moss Eater   (2005-01-25 11:51:00) [17]

Если используешь параметры, то нахрена даты к строкам приводить?
Что бы типа серверу скучно не было?


denis24   (2005-01-25 11:50:00) [18]

;)
В данном случае я проверяю dateedit1 и dateedit2
Если dateedit1.date<>0 then ....p1:=dateedit1.date
else.....? писать датк например 30/12/1899?
тоже самое и с p2?


Sergey13   (2005-01-25 11:45:00) [19]

Упор.АсДате. 8-)


Reindeer Moss Eater   (2005-01-25 11:41:00) [20]

Присвой p2 значение упора.


Наверх

Титульная страница Поиск, карта сайта Написать письмо