ParamByName, nie może znaleźć parametru

0

Witam,
pewnie problem jest banalny, ale jakoś nie dla mnie...

	Form1.Query.SQL.Clear;
  Form1.Query.SQL.Add('SELECT * FROM `store` WHERE ((`order`> :order ) AND (`level`= :level )');
  Form1.Query.SQL.Add(' AND ');
  Form1.Query.SQL.Add('(STRCMP(`name`,":name")=1))');
  Form1.Query.Params.ParamByName('order').Value:=Form2.Kategorie.Selected.AbsoluteIndex;
  Form1.Query.Params.ParamByName('level').Value:=Form2.Kategorie.Selected.Level;
  Form1.Query.Params.ParamByName('name').Value:=NowaKategoria.Text;

Zawsze przy ostatniej linijce wywala że Parameter 'name' not found, a przedostatnie dwie po prostu nic nie zmieniają.
Próbowałem zamiast .Value dać .AsInteger lub odpowiednio .AsString, Próbowałem bez .Params w kodzie, wciąż to samo.
Aha, Query to TZQuery, komponent Zeoslib'a.
Mogę prosić o jakąś podpowiedź? W internecie o ParamByName jakoś ubogo...
pozdrawiam
Paweł Lis

0

Myślęże tu jest błąd -> Form1.Query.SQL.Add('(STRCMP(name,":name")=1))');
":name" <> :name
Swego czasu bawiłem się Zeosami i być może miałem jakąś skopaną wersję ale też miałem problemy z parametrami typu string, obszedłem to łącząc stringi

var
	name : string;
...
	name := 'coś tam';
	Form1.Query.SQL.Add('(STRCMP(`name`,' + QuotedStr(name) + ')=1))');
0

nom, na łączenie też już wpadłem, ale z parametrami byłoby czysto, uporządkowanie, i jeden parametr by zmieniał kilka swoich wystąpień naraz.
poza tym u mnie tylko ten ostatni ze stringiem generował błąd, ale żaden z tych trzech nie działał, po prostu zostawiały :order i :level nienaruszone...

0

ja bym napisał :

Form1.Query.ParamByName('order').AsString:='ala ma kota';

1 użytkowników online, w tym zalogowanych: 0, gości: 1