Einzelnen Beitrag anzeigen

Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#2

Re: DB Access und While??????

  Alt 21. Apr 2004, 16:43
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]
  Mit Zitat antworten Zitat