通過資料表動態建Treeview,絕對高效率!

2021-04-12 21:04:27 字數 1501 閱讀 3799

/*

1。資料庫表的結構:

(節點id

節點父id(pid)

及其他字段

)id,pid的型別無所謂,數字,字元都行,也不需要有規律,

只要保證id欄位為主鍵即可,比如可以用guid 來作id。

支援無限級。

2。ttreenode的data指向乙個結構,結構內有乙個域記錄節點的id及pid,

其他的域根據需要可自己定義。

3。從資料庫生成樹,這是要好好考慮的,要作到效率高,最重要的是「避免反覆查詢

資料庫或遍歷資料集」,最好是查詢一次就能生成整棵樹。

主要思想是:先生成一棵全是根節點的樹,再做調整,這樣就避免了先讀出子節點,

找不到父節點的尷尬。

*/struct nodedata  //節點關聯的資料

;void __fastcall filltree()

query1->close();

ndata=null;

//下面是關鍵!!

//調整樹,根據節點的pid,把節點移到相應的treenode下

[ 收藏到我的網摘]   myy發表於 2023年10月09日 20:48:00

#ghslinux 發表於2004-11-06 18:09:00  ip: 221.224.207.*

ndata=new nodedata();

輸入錯誤,小錯,呵呵

萬分感謝!

#ghslinux 發表於2004-11-06 18:10:00  ip: 221.224.207.*

應該是

ndata=new dodedata();

#coonypie 發表於2004-12-06 23:17:00  ip: 220.163.61.*

好,非常感謝!

剛剛開始學習bcb,希望能和你交個朋友。

#流星 發表於2004-12-06 23:37:00  ip: 220.190.138.*

能否提供乙個delphi版的,非常感謝……

#northwindrocker 發表於2005-10-24 14:42:00  ip: 211.100.21.*

樓主我按你的辦法在delphi中實現了一下,到了調整的時候不行了,treeview中什麼也沒有了.

#xuhuai 發表於2006-05-10 18:15:00  ip: 222.45.198.*

我所關心的是,id,pid 假如沒有規律,如何能在資料表中查詢乙個節點,包括所有子節點的記錄。

pymysql建表 MySQL 建立資料表

mysql 建立資料表 建立mysql資料表需要以下資訊 表名錶欄位名 定義每個表字段 語法以下為建立mysql資料表的sql通用語法 create table table name column name column type 以下例子中我們將在 runoob 資料庫中建立資料表runoob t...

動態SQL語句建立資料表

寫儲存過程,我們會經常需要動態創資料表,如臨時表等。下面例子是使用execute來建立乙個資料表。宣告乙個變數 declare tablename nvarchar 30 dummytablename 動態建立表,execute 判斷表物件是否存在,if object id dbo tablenam...

php動態建立mysql資料表

一 mysql建立資料表的語句 其中id,question no等均為需要建立的資料庫表的語句 create table if not exists 表名 id int primary key auto increment not null question no int not null one ...