Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Внизselect .... where tbl.date between :p1 and :p2 Найти похожие ветки
← →
denis24 (2005-01-25 11:40) [0]подскажите пожалуста
Какое значение присвоить параметру p2 если хочу выбрать например с 01.01.2005 и до упора .В независимости от настроек формата даты компа?
← →
Reindeer Moss Eater © (2005-01-25 11:41) [1]Присвой p2 значение упора.
← →
Sergey13 © (2005-01-25 11:45) [2]Упор.АсДате. 8-)
← →
denis24 (2005-01-25 11:50) [3];)
В данном случае я проверяю dateedit1 и dateedit2
Если dateedit1.date<>0 then ....p1:=dateedit1.date
else.....? писать датк например 30/12/1899?
тоже самое и с p2?
← →
Reindeer Moss Eater © (2005-01-25 11:51) [4]Если используешь параметры, то нахрена даты к строкам приводить?
Что бы типа серверу скучно не было?
← →
denis24 (2005-01-25 12:19) [5]что то я не понимаю....
Если в dateedit юзер не выбрал дату и он пустой,то можно просто присвоить
:p1=dateedit1.date ?
← →
Соловьев © (2005-01-25 12:23) [6]>Если в dateedit юзер не выбрал дату и он пустой,то можно просто
>присвоить
>:p1=dateedit1.date ?
Проверить мы конечно ленимся?
← →
denis24 (2005-01-25 12:32) [7]конечно не ленимся.
присвоил и не вернуло ничего
← →
Соловьев © (2005-01-25 12:38) [8]
...
if dateedit2.date = 0
then Query1.ParamByName("p2").Value := Null
else Query1.ParamByName("p2").AsDateTime := dateedit2.date;
...
← →
Соловьев © (2005-01-25 12:38) [9]>then Query1.ParamByName("p2").Value := Null
then Query1.ParamByName("p2").AsDateTime := Date;
← →
Ольга (2005-01-25 12:49) [10]А зачем этот головняк - задавать дату через Edit.
Может лучше использовать стандартный для этого компонент DateTimePicker.
← →
Соловьев © (2005-01-25 12:50) [11]>Может лучше использовать стандартный для этого компонент
>DateTimePicker.
Так он и юзается.
← →
Ольга (2005-01-25 12:55) [12]В DateTimePicker всегда можно выставить дату по умолчанию и не надо никаких проверок... Или я не врубаюсь в проблему.
← →
Deniz (2005-01-25 13:03) [13]>Соловьев © (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;
← →
denis24 (2005-01-25 13:09) [14]получается делать проверку на наличие даты в контроле
если пусто ,то переделываем запрос без даты?
← →
Соловьев © (2005-01-25 13:32) [15]>Query1.ParamByName("p2").Clear;
не нужно тут null. тут же сказано что нужен упор - сегодня.
← →
denis24 (2005-01-25 15:20) [16]Спасибо Deniz (25.01.05 13:03) [13]
← →
Anatoly Podgoretsky © (2005-01-25 21:20) [17]Упор = 31.12.9999
← →
Deniz (2005-01-26 07:34) [18]>Соловьев © (25.01.05 13:32) [15]
В вашем же посте [8]Query1.ParamByName("p2").Value := Null
и тут вдруг не нужно тут null. Как это понимать?
Про "упор" от автора так и нечего сказано не было, поэтому я предложил исключить из where этот самый "упор"
← →
Соловьев © (2005-01-26 14:47) [19]>и тут вдруг не нужно тут null. Как это понимать?
читать [9] 8)
← →
Deniz (2005-01-27 07:35) [20]>Соловьев © (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;
...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c