Hallo,
ich glaube ich hab's nun endlich (mit eurer Hilfe) hinbekommen.
Hier mal der Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| function TForm1.GetFieldList: TStringList; var gruppen_id:integer; akt_id:integer; akt_gruppe:integer; id_wert:integer; begin FieldList.clear; with form1.ZQuery2 do begin sql.Text:='SELECT * FROM GRUPPE WHERE ID = :GRUPPE'; With Params.ParamByName('GRUPPE') do begin DataType := ftinteger; Value := form1.ZQuery1.fieldbyname('GR_ID').asinteger; End; open; end; if ZQuery2.RecordCount>0 then if ZQuery2.FieldByName('gr_id').asinteger > 0 then begin akt_id:=ZQuery2.fieldbyname('id').AsInteger; akt_gruppe:=zQuery2.fieldbyname('gr_id').AsInteger; repeat with form1.ZQuery2 do begin sql.Text:='SELECT * FROM GRUPPE WHERE ID = :GRUPPE'; With Params.ParamByName('GRUPPE') do begin DataType := ftinteger; Value := akt_gruppe; End; open; end; akt_gruppe:=ZQuery2.fieldbyname('GR_ID').AsInteger; if akt_gruppe=0 then repeat id_wert:= ZQuery2.fieldbyname('ID').asinteger; FieldList.add(ZQuery2.fieldbyname('NAME').asstring); with form1.ZQuery2 do begin sql.Text:='SELECT * FROM GRUPPE WHERE gr_id = :GRUPPE'; With Params.ParamByName('GRUPPE') do begin DataType := ftinteger; Value := id_wert; End; open; end; until ID_wert = AKT_ID; until akt_gruppe=0; end else repeat FieldList.add(ZQuery2.fieldbyname('NAME').asstring); until ZQuery2.FindNext=false; FieldList.add(ZQuery1.fieldbyname('NAME').asstring);
Result := FieldList; end; |
Das Problem ist halt, dass ich erst in die eine Richtung nach weiteren Einträgen / Knoten suchen und dann in die andere. Sicher kann man das Verbessern. Nur leider hat's bei mir nie funktioniert, so wie ich's probiert hatte.
Bin für Verbesserungsvorschläge und Fragen offen.
Danke schonmal auch für die bisherige Hilfe!!!
Gruß cyberax