![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос в ADOQuery [D6, MSSQL]
Иришка © (2004-04-06 10:35:00)Приветик!
SELECT AccountPays.Pay_ID,..................
From AccountPays LEFT OUTER JOIN
Inpays on (Inpays.Inpay_ID = AccountPays.Inpay_ID.........
where InnerDepName=:b And Account_Base_Name=:d and (CreateDate>=:u and CreateDate<=:o)
Всё в принцыпе работает нормально только по CreateDate (тип дата)
выдаёт данные > и <=, а должен >= и <=
Может я что-то не тек неписала?
Дополнение.
Выборка ведётся по параметрам u,o
P:=DateTimePicker1.Date;
ADOQuery1.Close;
ADOQuery1.Parameters.ParamByName('u').Value:=p;
ADOQuery1.Open;
------------------
P:=DateTimePicker1.Date;
ADOQuery1.Close;
ADOQuery1.Parameters.ParamByName('o').Value:=p;
ADOQuery1.Open;
serge35 (2004-04-06 11:45:00) [1]Ну не объяснили девушке, что можно просвоить сразу 2 параметра, вот она и присваивает их по одному.
Перед вторым Open оба параметра будут присвоены.
Vlad (2004-04-06 11:37:00) [2]
> stone © (06.04.04 11:21) [6]
Пускай даже два. Но зачем запрос открывать два раза. С одним параметром вместо двух - вот что неясно ;-)
stone (2004-04-06 11:21:00) [3]
> Vlad © (06.04.04 11:12) [5]
Я не телепат:)) но мне кажется тут просто опечатка, вероятнее всего DateTimePicker все же 2. Задать диапазон дат одним действительно сложно :))
> Иришка (06.04.04 10:35)
Для выбора диапазона дат лучше использовать синтаксис:CreateDate BETWEEN :u and :o
Vlad (2004-04-06 11:12:00) [4]Да и я не оспариваю, ошибка безусловно может быть в этом, однако странновато что запрос открывается два раза и каждый раз вместо двух параметров присваивается один...
serge35 (2004-04-06 11:04:00) [5]stone прав на все 100%. Присоединяюсь.
stone (2004-04-06 10:47:00) [6]
> Иришка (06.04.04 10:35)
Все дело в том, что DateTimePicker1.Date содержит время и дату, и если на сервере поле не содержит времени (например 06.04.2004 0:00:00), то это значение окажется меньше указанного в DateTimePicker1.Date, соответствено время нужно отрезать trunc(DateTimePicker1.Date)
Vlad (2004-04-06 10:46:00) [7]
> Иришка (06.04.04 10:35)
Хм... Я по поводу дополнения.
А что собственно там происходит ? Первый раз открываем набор данных с одним параметром (где второй ?), второй раз открываем набор данных со вторым параметром (где первый ?)
И что же мы хотим получить ?
stone (2004-04-06 10:44:00) [8]P:=Trunc(DateTimePicker1.Date);