

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.
Pokud pouzijes DBLabel, nemusis se o to starat, pouze napojis na stejny datasource jako grid.
Pokud chces, aby se udaje menily ve standardnich labelech, musis to udelat v udalosti, pri ktere se data meni, napr. udalost OnDataChange na Datasource
Tak táto možnosť ma ani nenapadla. Ďakujem za radu.Vyskúšam.
Takže všetko funguje tak ako má pri udalosti DataSorce.DataChange(potrebujem totiž ešte v ďaľšom gride zobrazovať údaje o objednanom tovare ). Reaguje to na kliknutie, zmenu riadku šípkou.Na scroll na myši to však nereaguje... Ak by ste mi ešte mohli poradiť ako na to bolo by to dokonalé.Ale ak nie postačí mi to aj takto.
Ešte raz ďakujem za radu. Vyriešilo sa mi zase veľa problémov.