Witam
Mam taki oto kod:
//w formie logowanie
function Tlogowanie.query(zap:string):TADOQuery;
begin
zapytanie1.Close;
zapytanie1.SQL.Clear;
zapytanie1.SQL.Add(zap);
zapytanie1.Open;
zapytanie1.First;
query:=zapytanie1;
end;
//W pliku glownym
var zap:TADOQuery;
i:integer;
begin
zap := logowanie.query('SELECT DISTINCT(typ) FROM samochody');
if (zap.Fields.Fields[0].Value <> null) then
begin
i:=0;
while not zap.Eof do
begin
combobox1.Items.Add(zap.Fields.Fields[i].Value);
i:=i+1;
zap.Next;
end;
end;
combobox1.Items.Add('Inne');
zap := logowanie.query('SELECT DISTINCT(kolor) FROM samochody');
showmessage(zap.Fields.Fields[0].value);
if (zap.Fields.Fields[0].Value <> null) then
begin
i:=0;
while not zap.Eof do
begin
combobox4.Items.Add(zap.Fields.Fields[i].Value);
i:=i+1;
zap.Next;
end;
end;
combobox4.Items.Add('Inne');
end;
I co ciekawe w combobox1 i combobox4 otrzymuje dokładnie te same wartości tak jakby z pierwszego zapytania mimo że w bazie danych kolumny kolor i typ sa zupełnie różne.
Wie ktoś czemu tak się dzieje i jak temu zaradzić?
Co najciekawsze mam analogiczną funkcję query2 która korzysta z osobnej kontrolki typu ADOQuery i nawet jak stworze dodatkową zmienną zap2 (typu ADOQuery) i przypisze jej wynik funkcji query2 to w combobox4 wstawia się ta sama wartość (w pętli oczywiście korzystam już ze zmiennej zap2).