[ XGhost @ 17.07.2020. 11:11 ] @
slijedeci kod kad unesem u komponentu Query radi savrseno:
---------
SELECT naziv FROM administracija
where aktivann = 'Ja'
and naziv NOT IN (SELECT naziv FROM raspored where obr_per = '7-2020')

UNION

SELECT naziv FROM raspored
where obr_per = '7-2020'
and naziv NOT IN (SELECT naziv FROM administracija where aktivann = 'Ja' )

ORDER BY naziv
---------
Kad isti unesem u proceduru dobijem gresku o sintaksi
-------------

procedure TRaspored.Button29Click(Sender: TObject);
begin
Nerasporedjeni_Radnici_Query.Close;
Nerasporedjeni_Radnici_Query.Sql.Clear;
Nerasporedjeni_Radnici_Query.Sql.Add ('SELECT naziv FROM administracija');
Nerasporedjeni_Radnici_Query.Sql.Add ('where aktivann = ''Ja''');
Nerasporedjeni_Radnici_Query.Sql.Add ('and naziv NOT IN (SELECT naziv FROM raspored where obr_per ='+''''+ Edit1.Text +'''');
Nerasporedjeni_Radnici_Query.Sql.Add ('UNION');
Nerasporedjeni_Radnici_Query.Sql.Add ('SELECT naziv FROM raspored');
Nerasporedjeni_Radnici_Query.Sql.Add ('where obr_per ='+''''+ Edit1.Text +'''');
Nerasporedjeni_Radnici_Query.Sql.Add ('and naziv NOT IN (SELECT naziv FROM administracija where aktivann = ''Ja'')');
Nerasporedjeni_Radnici_Query.Sql.Add (' order by naziv');
Nerasporedjeni_Radnici_Query.Open;
end;
------------
Nazalost nemogu da primjetim gdje sam pogrijesio nadam se da ce neko primjetiti :)

[ sdurut @ 17.07.2020. 11:48 ] @
Probaj da staviš ; iza "order by naziv;". Na kraju SQL upita treba da bude ;

Nerasporedjeni_Radnici_Query.Sql.Add (' order by naziv;');

Takođe sledeći red probaj da Edit1.Text zameniš hardcoded tekstom za probu da li će da proradi procedura.

Nerasporedjeni_Radnici_Query.Sql.Add ('and naziv NOT IN (SELECT naziv FROM raspored where obr_per ='+''''+ Edit1.Text +'''');
[ gobs @ 17.07.2020. 12:08 ] @
mislim da treba ubacivati i prazno mjesto
ovo
Nerasporedjeni_Radnici_Query.Sql.Add ('SELECT naziv FROM administracija');
Nerasporedjeni_Radnici_Query.Sql.Add ('where aktivann = ''Ja''');
bi trebalo da izgleda ovako:
Nerasporedjeni_Radnici_Query.Sql.Add ('SELECT naziv FROM administracija');
Nerasporedjeni_Radnici_Query.Sql.Add (' where aktivann = ''Ja''');
ako ne ubacič prazno mjesto ispred WHERE
on će sastaviti administracijawhere u jednu riječ.
[ XGhost @ 17.07.2020. 12:12 ] @
rjeseno
Nerasporedjeni_Radnici_Query.Sql.Add ('and naziv NOT IN (SELECT naziv FROM raspored where obr_per ='''+ Edit1.text +''')');