1.3.2的修改
- 对 InsertNode进行了修改,不会再发生传送的节点id有错误而默认插入到根下的行为。 (出于安全考虑而去掉)
- 完善了SubTree函数
- 添加了path函数可以得到路径
- 添加了alterNode可以修改节点名称以及在兄弟节点中的位置。
许可:GUN LGPL
测试地址:http://lxbzj.com/product/dbtree/index.asp
DBTree使用说明
目录
- 简介
- 特点
- 如何使用
简介
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
整个程序是一个类,提供插入、移动、删除、显示、输出为列表控件等接口,以后功能还会不断完善。
插入一个节点作为给出节点的孩子节点。
参数:
- node_pid 树中节点的id,0表示插入到根下
- str节点的名称默认为新建文件夹;
将树输出为类表控件的选项,即<option>标签
参数:
- root_id 树根(Root)编号,默认值为0
- selected_id 列表选项的默认中选项
- show_root 是否允许显示根(Root)这一行记录
- rel_deep 显示的相对深度 -1 显示所有 0 :只显示根 1 显示1层
- 参数: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
- node_id 节点id
- 排序: "asc" "desc"
- rel_deep 相对要显示的深度 1仅显示1层 -1显示所有深度 0 仅显示根 如此类推
- with_root(true/false) 记录集是否包含根
- with_del(true/false) 记录集是否包含标记为删除的记录
修改节点信息
- node_id节点id
- new_name新的名称
- step 要移动的位置
©linzsoft.com2006-05-26
DBTree,1.3.2
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 群星.1995-坠入情网【宝丽金】【WAV+CUE】
- 群星《谁杀死了Hi-Fi音乐》涂鸦精品 [WAV+CUE][1G]
- 群星1998《宝丽金最精彩98》香港首版[WAV+CUE][1G]
- 汪峰《也许我可以无视死亡》星文[WAV+CUE][1G]
- 李嘉-1991《国语转调2》[天王唱片][WAV整轨]
- 蔡琴2008《金声回忆录101》6CD[环星唱片][WAV整轨]
- 群星《2024好听新歌36》AI调整音效【WAV分轨】
- 梁朝伟.1986-朦胧夜雨裡(华星40经典)【华星】【WAV+CUE】
- 方芳.1996-得意洋洋【中唱】【WAV+CUE】
- 辛欣.2001-放120个心【上海音像】【WAV+CUE】
- 柏菲·万山红《花开原野1》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 柏菲·万山红《花开原野2》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 潘安邦《思念精选集全纪录》5CD[WAV+CUE]
- 杨千嬅《千嬅新唱金牌金曲》金牌娱乐 [WAV+CUE][985M]
- 杨钰莹《依然情深》首版[WAV+CUE][1G]