Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1107467635
Гость
2005-02-04 00:53
2005.02.27
Чем чистить линзу на сидюке


1-1108473816
mr-jack
2005-02-15 16:23
2005.02.27
пара несложных вопросов


14-1107787760
juice
2005-02-07 17:49
2005.02.27
С++ Классы


9-1102065795
lifo
2004-12-03 12:23
2005.02.27
Спрайт


14-1107847788
gn
2005-02-08 10:29
2005.02.27
Фильтры больше не смогут защитить пользователей от спама





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский