婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > DBTree 1.3.2

DBTree 1.3.2

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

1.3.2的修改

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

許可:GUN LGPL


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

DBTree使用說明

目錄

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

 

簡介

DBTree是database tree的縮寫。意思是數據庫中的樹形結構。

DBTree是一個勇于數據庫服務器環境中的,在數據庫中記錄樹形數據結構的快速解決方案,即人們通常說的無限級目錄問題,本文檔統稱為樹,而且是樹結構在數據庫中的實現。

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

特點

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

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

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

在本程序中采用了更適應遍歷的數的表示結構。能極大地降低系統開銷,也能很優秀的解決一些樹的高級操作,更適應于數據庫。

如何使用

使用本程序,需要預先準備一個數據庫,且設置好數據庫聯接。

1.數據庫的定義:

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

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

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


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

參數:

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

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

參數:

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

修改節點信息

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

 

©linzsoft.com2006-05-26

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

巨人網絡通訊聲明:本文標題《DBTree 1.3.2》,本文關鍵詞  DBTree,1.3.2,DBTree,1.3.2,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《DBTree 1.3.2》相關的同類信息!
  • 本頁收集關于DBTree 1.3.2的相關信息資訊供網民參考!
  • 推薦文章

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

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

    主站蜘蛛池模板: 中西区| 正蓝旗| 闽侯县| 格尔木市| 莲花县| 石楼县| 盘锦市| 新泰市| 白水县| 行唐县| 绥德县| 大厂| 阿图什市| 阿拉善右旗| 东阿县| 南城县| 青铜峡市| 左权县| 赤城县| 友谊县| 松阳县| 马边| 乾安县| 牙克石市| 仙游县| 苗栗市| 连城县| 若尔盖县| 英超| 慈利县| 瑞丽市| 新建县| 吴桥县| 安国市| 静海县| 阿合奇县| 韶山市| 高密市| 翼城县| 青神县| 三原县|