仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 536|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之论坛关头手艺,树状纪录表的仓库睁开

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:18:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。因为事情缘故原由,触及到一个树状寄存纪录的表,请求程序中把树状表全体睁开,并输入响应的数据热荨S捎谏婕暗酱酥植僮鞯牡胤胶芏啵热缤缟系"论坛"就是典范的接纳树状寄存纪录的表,特此收拾出来与人人分享。
在良多材料都有先容睁开树状纪录的程序,可是良多是接纳递回的办法。我晓得,递回的办法逻辑对照复杂,实践操纵起来对照简单。可是递回有一个最年夜的弱点就是占用资本太多,速率太慢。假如在互联网的"论坛"上接纳此种办法,在表纪录良多的情形下将是一个十分严峻的成绩。上面的程序在笔者的事情中办理了一个年夜成绩并将使用于自己小站(yuking.126.com)的论坛。
我这里接纳速率十分快的仓库来完成这类操纵,可是操纵起来绝对而言难度加年夜。我们就以论坛纪录表为例解说这一历程,起首懂得一下表布局:

1、表布局(article)
selfint本纪录ID号
fatherint父纪录ID号
titlechar贴子题目
authorchar贴子作者
datetimedate发贴日期工夫
hitsint点击数
replyint复兴数
.....依据详细的情形我们还能够有更多的字段
1)关头申明:self是纪录本纪录的ID号,这应当是一个主动增加的字段,不充许反复。father是纪录本结点的父结点ID号的字段,若该纪录内容为"回贴"此字段值应当为"主贴"的ID号。若该纪录为"主贴"则它的父结点应当为"0"
2)以下两笔记录是父子纪录:
selffathertitleauthor.....
10谁能帮帮我三脚猫
21我能帮你甚么忙吗?网上飞

2、操纵办法
起首,我们读出一切父结点为"0"的纪录也就是"主贴",一切放进仓库中。然后输入位于栈顶的一笔记录("主贴")数据,并清空栈顶,栈下移一格。接着查找一切父结点为该栈项结点("主贴")的纪录("回贴"),也一切放于栈顶。注重到没有,就这两步我们就完成了把一条父纪录输入并睁开其子结点的事情。余下的事情只是顺次类推罢了了,直到栈为空为止。
固然实践操纵时大概还会有一些请求,好比请求失掉纪录的层数,复兴数等等成绩,我们只需略加改善就可以完成。

3、这里是收拾后的原代码
<%
setRS=server.CreateObject("ADODB.Recordset")

sql_text="select*fromarticlewherefather=0orderbydatetimedesc"
RS.Opensql_text,Bbs_ConnectionString查找一切父结点为0的结点,即"主贴"。

DimStack(100,8)界说仓库,我这里是100(8是指每一个栈元素分离寄存8个字段值)。可依据实践情形界说仓库巨细,能够按这个公式盘算"最多层数*最多睁开数"。
whilenotRs.eof
Stack(0,0)=RS("self")
Stack(0,1)=RS("father")
Stack(0,2)=RS("title")
Stack(0,3)=RS("author")
Stack(0,4)=RS("datetime")
Stack(0,5)=RS("hits")
Stack(0,6)=RS("reply")
Stack(0,7)=0
Top=1
dountilTop=0
Sql_text="select*fromarticlewherefather="&StackTop&"
RS1.OpenSql_text,MyConn查找一切父结点为栈顶结点的纪录
输入栈项元素,我这里是间接输入,实践做的时分能够发生表格等等效果
fori=0to7
Response.writestack(top-1,i)
next

ParentLevel=stack(top-1,7)清空仓库之前取得父纪录的层数
fori=0to7&nbsp</p>使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-21 07:16:37 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
简单生活 该用户已被删除
板凳
发表于 2015-1-22 17:44:30 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
若天明 该用户已被删除
地板
发表于 2015-1-31 07:54:46 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
兰色精灵 该用户已被删除
5#
发表于 2015-2-1 14:55:42 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
透明 该用户已被删除
6#
发表于 2015-2-20 21:53:47 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-6 18:47:44 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
小妖女 该用户已被删除
8#
发表于 2015-3-13 06:03:53 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
若相依 该用户已被删除
9#
发表于 2015-3-20 14:02:40 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-9 02:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表