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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.062 c
11-1092485443
=Sniper=
2004-08-14 16:10
2005.02.27
RichEdit1 := (Sender as TKolRichEdit); как будет в KOL?


4-1105540358
Аноним
2005-01-12 17:32
2005.02.27
Измерение температуры/скорости вращения вентилятора


3-1106726495
Yeg
2005-01-26 11:01
2005.02.27
Полное удаление


14-1108040987
pavel_guzhanov
2005-02-10 16:09
2005.02.27
TV-Out


4-1105599914
Anonimus
2005-01-13 10:05
2005.02.27
Операционная система