

Načítanie do labelov pri pohybe po DBGride pomocou ADOQuery
Tak opäť som narazil na problém. Pôvodne som mal údaje v DBGride zobrazené pomocou ADOTable a v udalosti DBGrid3DrawColumnCell som mal asi takýto kód:
If gdSelected in State then begin
HlavnyFormular.TableKontakty.First;
while not HlavnyFormular.TableKontakty.Eof do begin
if TableObjednavky.FieldByName('KontaktyID').AsInteger=TableKontakty.FieldByName('KontaktyID').AsInteger then begin
Label1.Caption:=HlavnyFormular.TableKontakty.FieldByName('NázovSpoločnosti').AsString;
.
.
.
end;
TableKontakty.Next;
end;
dbgrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Nakoľko som ale mal problémy s mazaním (údaje som síce z tabuľky vymazal ale grid ich stále zobrazoval, nejak zostávali stále v pamäti) tak som sa rozhodol pokúsiť sa údaje do labelov načítavať pomocou ADOQuery a SQL dotazu. A teraz moja otázka ako to zrealizovať? pokúsil som sa nejak takto:
If gdSelected in State then begin
with ADOQuery4 do
begin
Active:=false;
SQL.Clear;
SQL.Add('SELECT * FROM Kontakty, Objednavky WHERE Objednavky.KontaktyID=Kontakty.KontaktyID');
Active:=true;
end;
Label1.Caption:=ADOQuery4.FieldByName('NázovSpoločnosti').AsString;
.
.
.
ale vôbec to nemení údaje, pri pohybe po gride. načíta prvý a finiš. Neviem ako zosmoliť ten SQL príkaz aby to načítavalo údaje do tých labelov vždy pri zmene riadku v dbgride.Alebo mám zle aj priraďovanie do labelu?ďakujem za rady...
edit: v tom prvom prípade bolo súčasťou aj načítavanie do druhého grido pomocou ADOQuery a to mi fungovalo dobre ale pomocou table som nacitaval cislo IDObjednavky, ktoré som potom pouzil na SELECT v SQL príkaze takže mal jasny identifikátor.