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:32
Hier mal ein Beispiel mit ADO...
Delphi-Quellcode:
procedure fillTreeview(Tree:TTreeview; ADOConnection:TADOConnection);
procedure fill(Depth:integer; ANode:TTreeNode; ADOStoredProc:TADOStoredProc);
var abbruch:boolean;
Node:TTreeNode;
begin
abbruch:=false;
while not ADOStoredProc.Eof and not abbruch do begin
Node:=Tree.Items.AddChild(
ANode,
ADOStoredProc.FieldByName('nodename').AsString
);
ADOStoredProc.Next;
if ADOStoredProc.FieldByName('depth').AsInteger > Depth then
fill(Depth+1, Node, ADOStoredProc);
if ADOStoredProc.FieldByName('depth').AsInteger < Depth then
abbruch:=true;
end;
end;
var ADOStoredProc:TADOStoredProc;
begin
ADOStoredProc:=TADOStoredProc.Create(nil);
try
Tree.Items.BeginUpdate;
Tree.Items.Clear;
ADOStoredProc.Connection:=ADOConnection;
ADOStoredProc.ProcedureName:='GetSortedSubTree;1';
ADOStoredProc.Parameters.Refresh;
ADOStoredProc.Parameters.ParamByName('@NodeID').Value:=1;
ADOStoredProc.Open;
fill(ADOStoredProc.FieldByName('depth').AsInteger, nil, ADOStoredProc);
ADOStoredProc.Close;
finally
ADOStoredProc.free;
Tree.Items.EndUpdate;
end;
end;
Gruss
Thorsten
|
|
Zitat
|