Moin moin
Das Problem ist, das du dir bei dem rekursivem Aufruf dein Abfrageergebnis zerschiest..
entrys(SQL.FieldByName('id').AsInteger);
Ruft die Funktion erneut auf, aber :
Delphi-Quellcode:
SQL.Active := false;
SQL.CommandText := '
SELECT*FROM app WHERE einordnung='+IntToStr(i)+'
ORDER BY sort';
SQL.Active := true;
^^ da sprichst du ja die selbe Komponente an die in der 1. Instanz deiner Funktion schon benutzt wurde...
Du musst deine Querys zur Laufzeit erstellen, so dass für jeden Durchlauf der Funktion auch eine eigene Abfrage erzeugt wird...
schönen Gruß
Sam
[edit]
und das wird so glaub ich nicht funktionieren:
en := Tree.Items.GetFirstNode;
damit werden ja alle nodes (bis auf PHP) an den obersten Knoten angehängt.
[/edit]
[edit2]
So, versuch das mal...
Delphi-Quellcode:
procedure TForm1.entrys(i : Integer; aParent : TTreenode);
var st:
String;
myQuery : TADOQuery;
begin
myQuery := TADOQuery.create(Self);
with myQuery
do begin
connection := ADOConnection1;
//oder wie auch immer du nach Access Connectest ;-)
close;
sql.clear;
sql.add('
Select *from app where einordnung= '+
IntToStr(i)+
'
ORDER BY sort');
open;
while not Eof
do begin
with Tree.Items
do begin
st := FieldByName('
appname').AsString;
entrys(FieldByName('
id').AsInteger, ADDChild(aParent,st));
end;
//with
Next;
end;/eof = true
end;
//with
myQuery.free;
end;
und der Aufruf so:
Delphi-Quellcode:
tree.Items.clear;
entrys(0, nil);
schönen Abend noch
Sam
[/edit2]
[edit3]
Oh Herr schenk Hirn
ganz vergessen:
Herzlich Willkommen in der Delphipraxis
[/edit3]