Параметры в запросах
Если в запросе написать один и более одинаковых параметров
в списке параметров они будут определятся как разные параметры.
например если текст запроса такой
select * from clients
where id= :par1
and fld1 <> :par1
открываем параметры и видим 2 записи
par1
что не есть правильно и не правильно работает.
в списке параметров они будут определятся как разные параметры.
например если текст запроса такой
select * from clients
where id= :par1
and fld1 <> :par1
открываем параметры и видим 2 записи
par1
что не есть правильно и не правильно работает.
Комментарии
Сам сталкивался с подобной ситуацией.. Почему то ADO не может нормально работать, если параметр встречается более одного раза.
Пути решения:
1. назвать параметры разными именами
2. формировать текст запроса динамически на этапе выполнения (Query.SQL.Text := '...')
Если кто знает другие варианты, подскажите плиз
в фибах такой проблемы не наблюдалось...
это, так в порядке бреда, а если серьезно, то для ODBC, например, параметры вообще без имен передаются, в твоем примере так: т.е. вполне нормальная ситуация и ожидать другого поведения не приходится.
Довольно много параметров таких
AND( Code = :PCode or :PCode = 0)
У всех своя специфика.
Однако это не правильно что одноименные параметры распознаются как разные.
DELPHI 7 + FIB
Ну так компоненты же разные. Если одинаковые по названию методы выполняют одинаковые действия то это одниковые компоненты
Двери тоже в разные стороны открываются, что ж теперь делать?
Ещё одна замеченая проблема если написать например
[code]where :par1*100>200
А вот то, что он один и тот же параметр считает разными - бесит
Все пристыженно склонили головы и покаялись.
To All: Будем жаловаться Борланду?
Все правильно, только в Делфе не ругается на одинаковые параметры и при определении одного определяет и другой.
К примеру для подобного запроса:
select *
from Enrolls
where Student_Id > :stud and Class_ID <:stud
достаточно один раз написать:
Query1.ParamByName('stud').Value:= par;
будет только одна запись параметра а не 2 как мы наблюдаем сейчас.
в билде 9 так и осталось..
Как выяснилось нет в дельфе также 2 параметра. Я проверял на D5 и D7 (BDE,DBX,IBX).