我是对数据表里的一个字段判断来动态生成treeview节点的,如字段facctid的值为001则为第一节点,00101的为第二节点,0010101为第三节点,001010101为第三节点。但是这样下来太慢了,是否不用这么多adoqurey也可以实现呢?
------------------------------
begin
node11:=TreeView1.Items.Addchild(Node1,lx[idm1.ADOQLanbase1.close;
ii:=inttostr(i);
dm1.ADOQLanbase1.sql.text:='select facctid,facctname from zwacct where facctid like '''+ii+'__'''; //i_ _
dm1.ADOQLanbase1.open;
//dm1.ADOQLanbase1.first;
while not dm1.ADOQLanbase1.eof do
begin
facctid1:=dm1.ADOQLanbase1.fieldbyname('facctid').AsString;
node111:=TreeView1.Items.Addchild(Node11,dm1.ADOQLanbase1.FieldByName('facctname').AsString);
//第三节点
dm1.ADOQLanbase11.close;
dm1.ADOQLanbase11.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid1+'__''';//iii_ _
dm1.ADOQLanbase11.open;
//dm1.ADOQLanbase11.first;
while not dm1.ADOQLanbase11.eof do
begin
facctid11:=dm1.ADOQLanbase11.fieldbyname('facctid').AsString;
node1111:=TreeView1.Items.Addchild(Node111,dm1.ADOQLanbase11.fieldbyname('facctname').AsString);
//第四节点
dm1.ADOQLanbase111.close;
dm1.ADOQLanbase111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid11+'__''';
dm1.ADOQLanbase111.open;
// dm1.ADOQLanbase111.first;
while not dm1.ADOQLanbase111.eof do
begin
facctid111:=dm1.ADOQLanbase111.fieldbyname('facctid').AsString;
node11111:=TreeView1.Items.Addchild(Node1111,dm1.ADOQLanbase111.fieldbyname('facctname').AsString);
//第五节点
dm1.ADOQLanbase1111.close;
dm1.ADOQLanbase1111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid111+'__''';
dm1.ADOQLanbase1111.open;
// dm1.ADOQLanbase1111.first;
while not dm1.ADOQLanbase1111.eof do
begin
facctid1111:=dm1.ADOQLanbase1111.fieldbyname('facctid').AsString;
node111111:=TreeView1.Items.Addchild(Node11111,dm1.ADOQLanbase1111.fieldbyname('facctname').AsString);
//第六节点
dm1.ADOQLanbase11111.close;
dm1.ADOQLanbase11111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid1111+'__''';
dm1.ADOQLanbase11111.open;
//dm1.ADOQLanbase11111.first;
while not dm1.ADOQLanbase11111.Eof do
begin
node1111111:=TreeView1.Items.Addchild(Node111111,dm1.ADOQLanbase11111.fieldbyname('facctname').AsString);
dm1.ADOQLanbase11111.next;
end;
dm1.ADOQLanbase1111.next;
end;
dm1.ADOQLanbase111.next;
end;
dm1.ADOQLanbase11.next;
end;
dm1.ADOQLanbase1.next;
end;
---------------------------------
------------------------------
begin
node11:=TreeView1.Items.Addchild(Node1,lx[idm1.ADOQLanbase1.close;
ii:=inttostr(i);
dm1.ADOQLanbase1.sql.text:='select facctid,facctname from zwacct where facctid like '''+ii+'__'''; //i_ _
dm1.ADOQLanbase1.open;
//dm1.ADOQLanbase1.first;
while not dm1.ADOQLanbase1.eof do
begin
facctid1:=dm1.ADOQLanbase1.fieldbyname('facctid').AsString;
node111:=TreeView1.Items.Addchild(Node11,dm1.ADOQLanbase1.FieldByName('facctname').AsString);
//第三节点
dm1.ADOQLanbase11.close;
dm1.ADOQLanbase11.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid1+'__''';//iii_ _
dm1.ADOQLanbase11.open;
//dm1.ADOQLanbase11.first;
while not dm1.ADOQLanbase11.eof do
begin
facctid11:=dm1.ADOQLanbase11.fieldbyname('facctid').AsString;
node1111:=TreeView1.Items.Addchild(Node111,dm1.ADOQLanbase11.fieldbyname('facctname').AsString);
//第四节点
dm1.ADOQLanbase111.close;
dm1.ADOQLanbase111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid11+'__''';
dm1.ADOQLanbase111.open;
// dm1.ADOQLanbase111.first;
while not dm1.ADOQLanbase111.eof do
begin
facctid111:=dm1.ADOQLanbase111.fieldbyname('facctid').AsString;
node11111:=TreeView1.Items.Addchild(Node1111,dm1.ADOQLanbase111.fieldbyname('facctname').AsString);
//第五节点
dm1.ADOQLanbase1111.close;
dm1.ADOQLanbase1111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid111+'__''';
dm1.ADOQLanbase1111.open;
// dm1.ADOQLanbase1111.first;
while not dm1.ADOQLanbase1111.eof do
begin
facctid1111:=dm1.ADOQLanbase1111.fieldbyname('facctid').AsString;
node111111:=TreeView1.Items.Addchild(Node11111,dm1.ADOQLanbase1111.fieldbyname('facctname').AsString);
//第六节点
dm1.ADOQLanbase11111.close;
dm1.ADOQLanbase11111.sql.text:='select facctid,facctname from zwacct where facctid like '''+facctid1111+'__''';
dm1.ADOQLanbase11111.open;
//dm1.ADOQLanbase11111.first;
while not dm1.ADOQLanbase11111.Eof do
begin
node1111111:=TreeView1.Items.Addchild(Node111111,dm1.ADOQLanbase11111.fieldbyname('facctname').AsString);
dm1.ADOQLanbase11111.next;
end;
dm1.ADOQLanbase1111.next;
end;
dm1.ADOQLanbase111.next;
end;
dm1.ADOQLanbase11.next;
end;
dm1.ADOQLanbase1.next;
end;
---------------------------------
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货