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

Вниз

странное поведение ADODataSet   Найти похожие ветки 

 
ivanoff   (2009-05-26 18:42) [0]

делаю:

SELECT Fld1, Fld2
FROM MyTable
WHERE (...) AND
  ((FromDT <= :DT) OR (FromDT IS NULL)) AND ((TillDT >= :DT) OR (TillDT IS NULL))


открываю ADODataSet  с одними и теми-же параметрами:
 из Delphi ----> пустой ???
 из Access -----> Возвращает правельные данные !!!

так как DT принимаю типа Variant делаю так, для уверенности
Parameters.ParamByName("DT").Value := VarToDateTime(DT);


 
Плохиш ©   (2009-05-26 19:21) [1]


>   ((FromDT <= :DT) OR (FromDT IS NULL)) AND ((TillDT >=
> :DT) OR (TillDT IS NULL))
>
>

Это два разных параметра


 
ivanoff   (2009-05-26 20:12) [2]

это и я знаю, но это у меня это всегда работало, и работает в других местах того-же проекта. Почему в данном случе не работает?


 
sniknik ©   (2009-05-26 20:48) [3]

> это и я знаю, но это у меня это всегда работало, и работает в других местах того-же проекта. Почему в данном случе не работает?
т.е. "знаю что на красный свет переходить нельзя, но раньше все получалось. почему сейчас очнулся в больнице?"

извиняюсь за вопрос, но он просто напрашивается, ты в детстве слабоумием не страдал? может у тебя рецидив?


 
ivanoff   (2009-05-26 22:03) [4]

Почему в accesse работает, и спрашивает только один параметр?
И в Delphi я обрщаюсь по имени параметра а не по индексу ... Хочу понять ПОЧЕМУ ибо уже откорректировал так

  ((FromDT <= :DT1) OR (FromDT IS NULL)) AND ((TillDT >= :DT1) OR (TillDT IS NULL))
Parameters.ParamByName("DT1").Value := VarToDateTime(DT);
Parameters.ParamByName("DT2").Value := VarToDateTime(DT);


!!! после правельного напоминания  !!! Плохиш ©   (26.05.09 19:21) [1]


 
turbouser ©   (2009-05-26 22:18) [5]


> ivanoff   (26.05.09 22:03) [4]


> ((FromDT <= :DT1) OR (FromDT IS NULL)) AND ((TillDT >= :
> DT1) OR (TillDT IS NULL))
> Parameters.ParamByName("DT1").Value := VarToDateTime(DT);
>
> Parameters.ParamByName("DT2").Value := VarToDateTime(DT);
>

?


 
sniknik ©   (2009-05-26 22:20) [6]

> Хочу понять ПОЧЕМУ
аксесс это не дельфи и он не обязан задавать параметры также как ты.

если изменишь способ задания то и в дельфи можешь сделать также, например перепишешь парсер и присвоение чтобы принимал одноименные задавая значение всем, или просто обратишься по индексу, или по классической схеме (с "?")  без  дельфевской обертки, да блин масса способов. на то он и язык программирования что можно запрограммировать все, что хочешь, даже если кто то для тябя этого заранее не сделал.


 
Нат ©   (2009-05-26 23:52) [7]


> т.е. "знаю что на красный свет переходить нельзя, но раньше
> все получалось. почему сейчас очнулся в больнице?"

Дальше резковато... Все равно 5 баллов!


 
Медвежонок Пятачок ©   (2009-05-26 23:56) [8]

И в Delphi я обрщаюсь по имени параметра а не по индексу ... Хочу понять ПОЧЕМУ

Открой генофонд и сравни что происходит в bde датасете при выполнении ParamByName().Value:=
с тем, что происходит в ADO при той же ситуации.

Если конечно хочешь понять почему



Страницы: 1 вся ветка

Текущий архив: 2009.07.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
3-1223979385
lod
2008-10-14 14:16
2009.07.19
cxGrid


15-1242592205
Юрий
2009-05-18 00:30
2009.07.19
С днем рождения ! 18 мая 2009 понедельник


2-1243069984
@!!ex
2009-05-23 13:13
2009.07.19
Удаление объекта после Assign


15-1242298176
Василий Жогарев
2009-05-14 14:49
2009.07.19
PostgreSQL &amp; Date / Time


15-1242623609
12
2009-05-18 09:13
2009.07.19
Помогите улучшить код на 1c. Быстродействие