Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
Delphi 7 Enterprise
|
Re: MSSQL - Problem mit Rekursiver SP
28. Jan 2008, 19:08
Hier mal ein Beispiel...
Delphi-Quellcode:
procedure fillTreeview(Tree:TTreeview; SQLConnection:TSQLConnection);
procedure fill(Depth:integer; ANode:TTreeNode; SDS:TSimpleDataSet);
var abbruch:boolean;
Node:TTreeNode;
begin
abbruch:=false;
while not SDS.Eof and not abbruch do begin
Node:=Tree.Items.AddChild(
ANode,
SDS.FieldByName('nodename').AsString
);
SDS.Next;
if SDS.FieldByName('depth').AsInteger > Depth then
fill(Depth+1, Node, SDS);
if SDS.FieldByName('depth').AsInteger < Depth then
abbruch:=true;
end;
end;
var SDS:TSimpleDataSet;
begin
SDS:=TSimpleDataSet.Create(nil);
try
Tree.Items.BeginUpdate;
Tree.Items.Clear;
SDS.Connection:=SQLConnection;
SDS.DataSet.CommandType:=ctStoredProc;
SDS.DataSet.CommandText:=
'GetSortedSubTree';
SDS.DataSet.ParamByName('nodeid').AsInteger:=1;
SDS.Open;
fill(SDS.FieldByName('depth').AsInteger, nil, SDS);
SDS.Close;
finally
SDS.free;
Tree.Items.EndUpdate;
end;
end;
Aufruf...
fillTreeview(TreeView, SQLConnection);
Gruss
Thorsten
|
|
Zitat
|