[ prginfo @ 10.06.2008. 17:06 ] @
Koristim Delphi 7, IBDatabase.
Sledeci je kod:

var
A:Integer;
begin
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('select * from TABELA where POLJE = A');
Query.Prepare;
Query.Open;
end

POLJE u tabeli je integer.
Sintaksa mi ne funkcionise.
Problem pravi kod tog dela POLJE = A

Ako neko vidi gde gresim, neka me skrene sa krivog puta.

Hvala.

P.S.
Probao sam razne varijante, ali ne ide.

[ Miloš Baić @ 10.06.2008. 17:38 ] @
Parametri su ono što treba koristiti.
[ savkic @ 10.06.2008. 18:01 ] @
> Query.SQL.Add('select * from TABELA where POLJE = A');

Ti si ovde rekao, daj mi sve slogove iz TABELE gde je FIELD POLJE jednako polju A. Ako želiš da vrednost nekog polja porediš sa string konstantom moraš tu konstantu staviti pod navodnike (Query.SQL.Add('select * from TABELA where POLJE = ''A'');) ili koristiti parametre.
Ako je POLJE INTEGER onda moraš koristiti cifre ne slova, dakle Query.SQL.Add('select * from TABELA where POLJE = 123');

> Query.Prepare;

Ako ne koristiš parametre onda ti ne treba Prepare. Slično pitanje je bilo pre nekoliko dana, pogledaj tu diskusiju da se sada ne ponavljamo.
[ prginfo @ 10.06.2008. 22:35 ] @
Nismo se razumeli. Napravio sam ovakvu varijantu zato sto npr. korisnik u toku rada menja taj integer preko Edita. Prvo sam, posto je Edit String uradio sledece A:= StrToInt(Edit1.Text), a potom zelim da nadjem u tabeli u POLJE koje je tipa Integer red sa vrednoscu koje ima A koje je isto Integer.

Poenta je da mi kod: 'select * from TABELA where POLJE = A', gde je A ustvari promenljiva koja je deklarisana kao Integer, ne funkcionise. Ja nisam hteo da biram vrednosti polja u tabeli koje su jednake stringu A, vec promenljivoj koja je deklarisana kao Integer.

Nadam se da sam bio jasniji.
[ Miloš Baić @ 10.06.2008. 22:54 ] @
Kao što je savkić rekao, a ponoviću još jednom, treba pogledati temu sa parametrima i rešićeš problem. Jednostavno je.
[ savkic @ 11.06.2008. 00:46 ] @
> Poenta je da mi kod: 'select * from TABELA where POLJE = A', gde je A ustvari promenljiva koja je deklarisana kao Integer, ne funkcionise.

Ponoviću: ti si ovde rekao, daj mi sve slogove iz TABELE gde je FIELD POLJE jednako polju A. Ne možeš tako pisati, vodi računa da FB server nema pojma da je A kod tebe promenljiva sa vrednošću koju želiš da dobiješ, sve što zna je da želiš poređenje sa nečim što je A, kako je A napisano bez navodnika on zaključuje da je to polje u tabeli, koje ne može naći i zato diže izuzetak.

> Ja nisam hteo da biram vrednosti polja u tabeli koje su jednake stringu A, vec promenljivoj koja je deklarisana kao Integer.

Imaš dve mogućnosti da A opet pretvoriš u string i staviš pod navodnike ... POLJE = ' + QuotedStr(IntToStr(A)) ili da koristiš parametre (za to pogledaj temu od pre nekoliko dana).