![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 значение упора.