数据结构如下:
CREATE TABLE [tbTree] (
[ID] [varchar] (4) COLLATE NOT NULL ,
[Context] [nvarchar] (50) NULL ,
[ParentID] [varchar] (4) NULL ,
CONSTRAINT [PK_tbTree] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
) ON [PRIMARY]
代码如下:
CREATE TABLE [tbTree] (
[ID] [varchar] (4) COLLATE NOT NULL ,
[Context] [nvarchar] (50) NULL ,
[ParentID] [varchar] (4) NULL ,
CONSTRAINT [PK_tbTree] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
) ON [PRIMARY]
代码如下:
l
procedure TForm1.ReadTree(tnode:TTreeNode;Fvalue: String);
l
Var
l
i: integer;
l
Flist:TStringList;
l
Flist1:TStringList;
l
str:string;
l
begin
l
qryTree.close;
l
qryTree.sql.clear;
l
qryTree.sql.add('select Parentid,id,context from tbtree');
l
qryTree.sql.add('where isnull(Parentid,'''')=');
l
qryTree.sql.add(''''+Fvalue+'''');
l
qryTree.Open;
l
qryTree.First;
l
Flist:=TStringList.Create;
l
Flist1:=TStringList.Create;
l
while not qryTree.eof do
l
begin
l
Flist.Add(trim(qryTree.fieldbyname('context').asstring));
l
Flist1.Add(qryTree.fieldbyname('id').asstring);
l
qryTree.next;
l
end;
l
for i:= 0 to flist.Count-1 do
l
begin
l
s:=flist1.Strings[i];
l
str:=flist.Strings[i];
l
snode:=Treeview1.items.addchild(tnode,str);
l
ReadTree(snode,s);
l
end;
l
flist.free;
l
flist1.free;
l
end;