Цитата:
Сообщение от Страдалецъ
Вы неправильно по любому формируете запрос.
У вас предполагается несколько условий а их надо отделять друг от друга логической связкой OR или AND. Если какое-то условие нам не надо, то переменная для него уже будет равна ''. Есть еще пара подводных камней, но это уже после того как поправите свой код.
|
У меня это реализовано:
1.Задаем счетчик
2. если выполняется условие, то z=1
Код:
if agent.Text <> '' then
begin
a:= 'CLIENT='+ agent.Text;
z:=z+1;
end;
3.Проверка - если если 'CHECK=' идет "вторым по счету" прибавляем AND
Код:
if knp.Text <> '' then
begin
k:= 'CHECK='+ knp.Text;
z:=z+1;
if z>1 then begin k:= 'and '+k; end;
3. Если в agent.Text пусто, то получается, что первое условие не выполняется(z=0),
второе выполняется(z=1),
if z>1 then begin k:= 'and '+k; end; -не проходит
т.е and не добавляется
Сам запрос:
Код:
adoQuery1.sql.Add('select * from OPEN where '+a +k);