主頁 > 知識庫 > DBTree 1.3.2

DBTree 1.3.2

熱門標簽:成都ai外呼系統(tǒng)線路 鄢陵學校如何做地圖標注 沈陽電話機器人公司 廣東語音外呼系統(tǒng)公司 長春公司外呼系統(tǒng)中心 鄭州智能外呼電銷機器人廠家 虛擬電話外呼系統(tǒng) 云南便宜外呼系統(tǒng)平臺 沈陽三五防封電銷卡

1.3.2的修改

  1. 對 InsertNode進行了修改,不會再發(fā)生傳送的節(jié)點id有錯誤而默認插入到根下的行為。 (出于安全考慮而去掉)
  2. 完善了SubTree函數(shù)
  3. 添加了path函數(shù)可以得到路徑
  4. 添加了alterNode可以修改節(jié)點名稱以及在兄弟節(jié)點中的位置。

許可:GUN LGPL


測試地址:http://lxbzj.com/product/dbtree/index.asp

DBTree使用說明

目錄

  1. 簡介
  2. 特點
  3. 如何使用

 

簡介

DBTree是database tree的縮寫。意思是數(shù)據(jù)庫中的樹形結(jié)構(gòu)。

DBTree是一個勇于數(shù)據(jù)庫服務器環(huán)境中的,在數(shù)據(jù)庫中記錄樹形數(shù)據(jù)結(jié)構(gòu)的快速解決方案,即人們通常說的無限級目錄問題,本文檔統(tǒng)稱為樹,而且是樹結(jié)構(gòu)在數(shù)據(jù)庫中的實現(xiàn)。

DBTree包含了各種不同的版本:asp+access、等等。

特點

通常情況下,樹在數(shù)據(jù)庫中實現(xiàn)的時候采用的是樹的雙親表示法,設一個編號字段id,和一個父親編號字段parent_id,來實現(xiàn)樹形結(jié)構(gòu)。這種數(shù)據(jù)結(jié)構(gòu)的特點是:操作簡單,幾乎不用維護,然而優(yōu)點帶來的問題是對樹進行遍歷的時候系統(tǒng)開銷極大,需要進行遞歸操作,因此不能夠無限制的增加樹的深度。普遍采用了異步讀取的方式來減少系統(tǒng)開銷。一些改進的方法也避免不了這一問題。

在絕大多數(shù)情況下,服務器上要求對樹的遍歷任務占據(jù)了對樹的操作的任務的大部分,可見如果針對數(shù)遍歷來做優(yōu)化能極大地提高效率減輕服務器負擔。

或者還是采用雙親表示法,采用異步讀取才減輕系統(tǒng)開銷,但是這樣依然不能解決例如樹的深度、路徑、刪除等的問題

在本程序中采用了更適應遍歷的數(shù)的表示結(jié)構(gòu)。能極大地降低系統(tǒng)開銷,也能很優(yōu)秀的解決一些樹的高級操作,更適應于數(shù)據(jù)庫。

如何使用

使用本程序,需要預先準備一個數(shù)據(jù)庫,且設置好數(shù)據(jù)庫聯(lián)接。

1.數(shù)據(jù)庫的定義:

數(shù)據(jù)庫中表(Tree)的定義(access)
字段名 字段類型 必填 默認值 其他 索引 說明
id 數(shù)字     自動編號 有(無重復) 節(jié)點的唯一編號
p_id 長整型 0     節(jié)點父親編號值
name 文本 新建文件夾 不允許為空字符串   節(jié)點名稱
porder 長整型     有(有重復) 節(jié)點的先序排序號
dep 長整型 1     節(jié)點深度值
del 布爾 Flase     是否刪除
附注:字段名僅僅為默認的字段名,如果您不指定其他的字段名的話,程序就假定您的字段和表名名為默認的。

2.在需要使用的頁面使用服務器包含命令:!--#include file="dbtree.asp" -->

3.初始化一個對象實例,然后初始化數(shù)據(jù)庫聯(lián)接字符串和其他變量

%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
% option explicit 'TRANSACTION = Required%>
!--#include file="dbtree.asp" -->
%
Dim MM_btree_STRING '數(shù)據(jù)庫聯(lián)接字符串
MM_btree_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "server.mappath("tree.mdb")
%>
%
dim tree
set tree=new DBtree
tree.conn=MM_btree_STRING '指定聯(lián)接字符串
tree.table="tree"'制定表名
tree.id="id"'制定列名
tree.p_id="p_id"
tree.porder="porder"
%>

4接下來就可以對樹進行各種操作了:

實例:

1.將樹顯示為列表:

%
Dim arr1(1,0),arr2(1,0),cache
arr1(0,0) = "ul>"
arr1(1,0) = "/ul>"
arr2(0,0) = "li>{name}"
arr2(1,0) = "/li>"
cache = tree.display(0,-1,arr1,arr2,"relative")
response.write(cache)
%>

2.插入,刪除等

select case request.Form("submit")
case "移動"
msg =tree.moveNode(request.Form.Item("src"),request.Form.Item("des"))
case "刪除"
msg =tree.delNode(request.Form("node"),false)
case "永久刪除"
msg =tree.delNode(request.Form("node"),true)
case "恢復"
msg =tree.undel(request.Form("undel"))
end select

3.其他的操作請參見實例

4.API

整個程序是一個類,提供插入、移動、刪除、顯示、輸出為列表控件等接口,以后功能還會不斷完善。


API
函數(shù)名  功能
insertNode(int node_pid, str node_name)
插入一個節(jié)點作為給出節(jié)點的孩子節(jié)點。

參數(shù):

  • node_pid 樹中節(jié)點的id,0表示插入到根下
  • str節(jié)點的名稱默認為新建文件夾;
MoveNode(src_id,des_id) 移動節(jié)點和他的子樹,參數(shù):src_id源節(jié)點id;des_id:目標節(jié)點id(注意暫時不能將一個節(jié)點移動到根下(0)) 
DelNode(id,confirm)  刪除節(jié)點和子樹,參數(shù):id節(jié)點id;confirm:是否直接刪除true/false。
undel(id)  恢復沒有直接刪除的節(jié)點
string OutPutOption(root_id,selected_id,show_root,rel_deep)  

將樹輸出為類表控件的選項,即option>標簽

參數(shù):

  • root_id 樹根(Root)編號,默認值為0
  • selected_id 列表選項的默認中選項
  • show_root 是否允許顯示根(Root)這一行記錄
  • rel_deep 顯示的相對深度 -1 顯示所有 0 :只顯示根 1 顯示1層
Display(root_id,rel_deep,menu_tag,item_tag,options)   功能:讀出并且按模板標簽生成顯示內(nèi)容,替換標簽有:{id},{name},{porder},{auto},{pid}
  • 參數(shù):root_id 根的id ,0表示全部顯示
  • rel_deep 要顯示的相對深度。1層2層等等
  • menu_tag 菜單標簽 數(shù)組
  • item_tag 項目標簽 數(shù)組
  • menu_tag 與item_tag 必須為形如arr(1,n)的數(shù)組,即必須都是二維數(shù)組、第一維必須是1第二維存儲各級標簽
  • arr(0,n)存儲開始標簽,arr(1,n)存儲結(jié)束標簽,結(jié)束標簽不能含有需要替換的內(nèi)容
  • menu_tag(x,0),item_tag(x,0)用來存儲默認的模板標簽參見使用實例
  • option:參數(shù) ,可用值:relative
SubTree(node_id,order,rel_deep,with_root,with_del)   取得子目錄記錄集
  • node_id 節(jié)點id
  • 排序: "asc" "desc"
  • rel_deep 相對要顯示的深度 1僅顯示1層 -1顯示所有深度 0 僅顯示根 如此類推
  • with_root(true/false) 記錄集是否包含根
  • with_del(true/false) 記錄集是否包含標記為刪除的記錄
AlterNode(node_id,new_name,step)

修改節(jié)點信息

  • node_id節(jié)點id
  • new_name新的名稱
  • step 要移動的位置
程序還在改進中,有些接口還待調(diào)整

 

©linzsoft.com2006-05-26

標簽:湖北 孝感 平頂山 四平 馬鞍山 防城港 朝陽 遼陽

巨人網(wǎng)絡通訊聲明:本文標題《DBTree 1.3.2》,本文關鍵詞  DBTree,1.3.2,DBTree,1.3.2,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《DBTree 1.3.2》相關的同類信息!
  • 本頁收集關于DBTree 1.3.2的相關信息資訊供網(wǎng)民參考!
  • 推薦文章

    上一篇:關于網(wǎng)站文件自動備份程序的一點思考

    下一篇:抽取10萬條數(shù)據(jù),想起GetRows()