PDA

Ver la Versión Completa : Curiosidad While anidado con ADO


lpedrazzi
30-11-2007, 15:04:54
Estimados amigos del foro les dejo esta inquietud....mi intencion es llenar un treeview con los datos que traigo desde una bd. el hecho es que el segundo while siempre me trae registros y no debe ser asi...es decir el while not ADOQuery2.EOF do begin no esta funcionando y no se porque...les expongo el código para su analisis....

var
NodoPadre,NodoHijo:TTreeNode;
IndicePadre:Integer;
pp:string;
begin
IndicePadre:=0;
try
try
with DM1 do begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From Menu Where CodigodeItemPadre = 0');
ADOQuery1.Open;
ADOQuery1.Refresh;
while not ADOQuery1.Eof do begin
Tree.Items.Add(nil,ADOQuery1.FieldbyName('DescripcionItem').AsString);
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('Select * From Menu Where CodigoDeItemPadre = ' + ADOQuery1.FieldbyName('CodigoDeItem').AsString);
ADOQuery2.Open;
ADOQuery2.Refresh;
while not ADOQuery2.EOF do begin
Tree.Items.AddChild(Tree.Items[IndicePadre],ADOQuery2.FieldbyName('DescripcionItem').AsString);
ADOQuery2.Next;
end;
ADOQuery2.Close;
Inc(IndicePadre);
ADOQuery1.Next;
end;
ADOQuery1.Close;
end;
except
end;
finally
end;
end;