[ Vladimir Culum @ 19.07.2006. 22:42 ] @
Napravio sam tabelu KOMITENTI u okviru programa IMENIK.
U njoj sam stavio polja ID_K, TELEFON, NAZIV, GRAD, GRUPA (prijatelj, rodbina, kolega), ADRESA.... Napravio sam formu na kojoj sam postavio DBGrid u kome se prikazuje NAZIV komitenata iz tabele i nju sam vezao za Query. Na formi se nalaze 2 ComboBox-a.
Pokusao sam da napravim pretrazivnje po odredjenim uslovima. Npr po uslovu GRAD i uslovu GRUPA na klik dugmeta.

Pokusao sam sledece:

var
grupa:String;
grad:String;
begin
{u Items ComboBox-a sam naveo samo vrednosti koje mi se pojavljuju u tabeli}

if ComboBox1.ItemIndex=0 then grupa:='prijatelj';
if ComboBox1.ItemIndex=1 then grupa:='rodbina';
if ComboBox1.ItemIndex=2 then grupa:='kolega';

if ComboBox2.ItemIndex=0 then grad:='Novi Sad';
if ComboBox2.ItemIndex=1 then grad:='Beograd';
if ComboBox2.ItemIndex=2 then grad:='Subotica';

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from KOMITENTI where GRAD like ' +ANsiUpperCase(grad)+ 'and GRUPA like '+ANsiUpperCase(grupa));
Query1.Prepare;
Query1.Open;

end;

Prijavljuje mi problem-poruku:

Dynamic SQL Error
SQL error code=-206
Column unknown
Beograd
At line 1, column 63.

Treba mi pomoc da znam gde gresim.
[ badam @ 19.07.2006. 22:52 ] @
Posto su kolone GRAD i GRUPA tipa string treba da turis prijatelji, ... i Beograd,... pod apostrofe
Code:

Query1.SQL.Clear;
Query1.SQL.Add('select * from KOMITENTI where GRAD like ''' +ANsiUpperCase(grad)+ ''' and GRUPA like '''+ANsiUpperCase(grupa))+'''';

ili
Code:

Query1.SQL.Clear;
Query1.SQL.Add('select * from KOMITENTI where GRAD like ' +QuotedStr(ANsiUpperCase(grad))+ 'and GRUPA like '+QuotedStr(ANsiUpperCase(grupa)));


I ne znam zasto koristis like umesto =.
[ Miloš Baić @ 20.07.2006. 02:31 ] @
Pozdrav,

kratak komentar. Naime, umesto TComboBox-a, na formu bih postavio TDBLookupComboBox i povezao sa kolonama iz baze Grad i Grupa. Tako da, ako se doda neki novi grad ili grupa u bazu, automatski se pune i TDBLookupComboBox. Praktičnije je.
[ badam @ 20.07.2006. 12:24 ] @
Posto mu je potrebno za pretragu, TDBLookupComboBox mu ni slucajno ne bi odgovarao. Pri izmeni vrednosti u njemu, menjala bi se vrednost za polje (npr GRAD) tekuceg recorda.
[ Miloš Baić @ 20.07.2006. 15:10 ] @
Pa nek postavi ReadOnly na True?!