測試地址:http://lxbzj.com/product/dbtree/index.asp
目錄
DBTree是database tree的縮寫。意思是數據庫中的樹形結構。
DBTree是一個勇於數據庫服務器環境中的,在數據庫中記錄樹形數據結構的快速解決方案,即人們通常說的無限級目錄問題,本文檔統稱為樹,而且是樹結構在數據庫中的實現。
DBTree包含了各種不同的版本:asp+access、等等。
通常情況下,樹在數據庫中實現的時候采用的是樹的雙親表示法,設一個編號字段id,和一個父親編號字段parent_id,來實現樹形結構。這種數據結構的特點是:操作簡單,幾乎不用維護,然而優點帶來的問題是對樹進行遍歷的時候系統開銷極大,需要進行遞歸操作,因此不能夠無限制的增加樹的深度。普遍采用了異步讀取的方式來減少系統開銷。一些改進的方法也避免不了這一問題。
在絕大多數情況下,服務器上要求對樹的遍歷任務占據了對樹的操作的任務的大部分,可見如果針對數遍歷來做優化能極大地提高效率減輕服務器負擔。
或者還是采用雙親表示法,采用異步讀取才減輕系統開銷,但是這樣依然不能解決例如樹的深度、路徑、刪除等的問題
在本程序中采用了更適應遍歷的數的表示結構。能極大地降低系統開銷,也能很優秀的解決一些樹的高級操作,更適應於數據庫。
使用本程序,需要預先准備一個數據庫,且設置好數據庫聯接。
1.數據庫的定義:
2.在需要使用的頁面使用服務器包含命令:<!--#include file="dbtree.asp" -->
3.初始化一個對象實例,然後初始化數據庫聯接字符串和其他變量
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% option explicit 'TRANSACTION = Required%>
<!--#include file="dbtree.asp" -->
<%
Dim MM_btree_STRING '數據庫聯接字符串
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 '指定聯接字符串
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
整個程序是一個類,提供插入、移動、刪除、顯示、輸出為列表控件等接口,以後功能還會不斷完善。
參數:
將樹輸出為類表控件的選項,即<option>標簽
參數:
修改節點信息
©linzsoft.com2006-05-26