Hi,
Also das ganz brauche ich wegen folgender rekursiver procedure:
Delphi-Quellcode:
procedure GetProjects(ParentID: Integer; Projects: TProjectManager);
var i: Integer;
begin
with Database.Query.SQL do
begin
Clear;
Add('SELECT');
Add(' *');
Add('FROM projects');
Add('WHERE projects.ParentID = :pid');
end;
Database.Query.ParamByName('pid').AsInteger := ParentID;
with Database.Query do
begin
Open;
for i := 0 to RecordCount - 1 do
begin
with Projects.AddProject(Projects.Parent) do
begin
Name := FieldByName('NAME').AsString;
GetProjects(FieldByName('ID').AsInteger, SubProjects); //*
end;
Next;
end;
Close;
end;
end;
Vielleicht brauche ich da gar nichts zu erklären. Das Problem ist halt: Wenn ich sagen wir 5 Projekte unter einer gewissen ParentID habe, dann läuft die for-Schleife 5 mal durch. und jedes mal wird GetProjects erneut aufgerufen, wo die
Query dann geändert und geöffnet wird usw, wodurch ja die Daten verloren gehen, die in der ersten Instanz mit der 5er-for-Schleife noch gebraucht werden.
Ich hoffe ich konnte das Problem verständlich erklären.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."