數據庫如下:
region_id  name       description   previous_id next_id parent_id
1010201 湘湖管理局 湘湖管理局 -1 1010202 10102
1010213 东岸乡         东岸乡         1010212   -1 10102
1010202 马王堆街道 马王堆街道 1010201 1010203 10102
1010203 东屯渡街道 东屯渡街道 1010202 1010204 10102
1010205 五里牌街道 五里牌街道 1010204 1010206 10102
1010208 浏正街街道 浏正街街道 1010207 1010209 10102
1010209 都正街街道 都正街街道 1010208 1010210 10102
1010212 火星街道          火星街道    1010211 1010213 10102  
1010204 朝阳街街道 朝阳街街道 1010203 1010205 10102
1010210 府后街街道 府后街街道 1010209 1010211 10102
1010211 解放路街道 解放路街道 1010210 1010212 10102
1010206 韭菜园街道 韭菜园街道 1010205 1010207 10102
1010207 文艺路街道 文艺路街道 1010206 1010208 10102  現在要求順序為.:  先是顯示previous_id等於-1的街道,在看他的next_id.
                    接著顯示region_id等於next_id的街道.
  就是按上面的順序生成一顆樹.!

解决方案 »

  1.   

    我的帶碼如下:while not (j=-1) do
              begin
              node3:=tree.Items.AddChild(node2,adoquery4.fieldbyname('name').AsString);
              j:=adoquery4.fieldbyname('next_id').AsInteger;
              opensql(adoquery4,'select * from base_region where parent_id='+inttostr(adoquery3.fieldbyname('region_id').AsInteger)+' and region_id='+inttostr(j)+'');
              j:=adoquery4.fieldbyname('next_id').AsInteger;
              end;
             node3:=tree.Items.AddChild(node2,adoquery4.fieldbyname('name').AsString);要的結果是出來了.!可是要等二三秒才會生成樹. 
      而且這顆樹是國家.省.市.區.街道..如果我都用這樣的辦法..那麽可能會要等一兩分鍾才會出來吧.!嘿嘿.!求好辦法.!