基于ACCESS数据库的纯asp论坛制作心得(树形结构)

access|数据|数据库|心得

感觉做一个论坛不像想象中的那么容易,但也不像想象中的那么复杂:),经过4天的浴血奋战,终于从对论坛制作一无所知到今天的论坛数据结构和组织形势初步确定,中间参考了sunamd,bigeagled,廖家远等的思路,并得到了赖皮王子,hooke,bigeagle大虾的热心帮助,谨以此文一并表示感谢。
bigeagle的文章采用了sql数据库的存储过程来实现,但现实中支持asp的免费站点本来就少,支持数据库的免费站点更少,支持sql数据库的免费站点。。。反正我没见过,哪位知道告诉我一声:),所以我等穷人只有用access了,我就是采用asp+access的形式实现了类似chinaasp的论坛。。闲话少说,言归正传。
先说一下数据库的结构,主要有两个表,一个存储用户信息user,一个存储论坛文章及信息mytext。用户信息就不用多说了,主要就是mytext论坛文章的组织,要实现相同主题的帖子组织在一块、跟贴紧随父贴、后发帖居上、更重要的是要认清父贴,否则会造成一层回复一律排在一起,二层回复排在一起,三层。。。如下:
根贴
回复1:根贴
回复2:根贴
回复:回复1:根贴
。。。。
所以这里有几个关键的字段:
id(自动):自动编号(作用:显示后来居上)
rootid(整型):根贴的id(作用:实现相同主题的帖子排在一块)
level(整型):贴子的层数(作用:显示的时候实现缩进)
orderid(单精):相同主题帖子排序的基数(作用:相同主题帖子排序的先后依据,即防止出现上例的情况)
fatherid(整型):父贴id,贴子的血缘关系
排序的sql语句:
select * from mytext orderby rootid desc,orderid,id desc

实现显示缩进(修正后的"不用递归实现树形结构.."):
level=0
response.write "<ul>"
do while not rs.eof
if rs("level")<level then
for i=rs("level") to level-1
response.write "</ul>"
next
end if
if rs("level")>level then
response.write "<ul>"
end if
response.write "<li>主题:。。</li>"
level=rs("level")
rs.movenext
loop
response.write "</ul>"
%>
注意:原"不用递归实现树形结构..."文章有误,这是修改后的代码.

另外有一点经验要注意:就是在单精类型数据传值的时候,如:orderid,request上来的数据要先replace(orderid," ","+"),再csng转换,不然会报告"类型不匹配",我一开始百思不得其解,后来发现在传值的时候必定会把单精数据"+"弄丢,变成空格,所以要先替换再转型.

以上只是我个人的看法,如果有错误之处或有更好的方法欢迎交流gwlx@21cn.com,大家可以到211.90.159.61(开放时间:8:15~17:30)或http://www.21union.net/sqlbbs看实例并多多灌水呦:)..

时间: 2024-08-30 16:54:49

基于ACCESS数据库的纯asp论坛制作心得(树形结构)的相关文章

基于ACCESS数据库的纯asp论坛制作心得

access|数据|数据库|心得     感觉做一个论坛不像想象中的那么容易,但也不像想象中的那么复杂:),经过4天的浴血奋战,终于从对论坛制作一无所知到今天的论坛数据结构和组织形势初步确定,中间参考了sunamd,bigeagled,廖家远等的思路,并得到了赖皮王子,hooke,bigeagle大虾的热心帮助,谨以此文一并表示感谢.     bigeagle的文章采用了sql数据库的存储过程来实现,但现实中支持asp的免费站点本来就少,支持数据库的免费站点更少,支持sql数据库的免费站点...

基于Access数据库的抽奖系统设计

引言 当今社会,各种各样的抽奖活动相当普遍,抽奖活动的基本原则和主要特征是随机性,但对于某一团体内部的抽奖活动来说,还有一个相对均衡的问题,所谓相对均衡就是指让各个部门的中奖概率和其人数占总人数的比重大致相等.基于ACCESS,结合其内置VBA语言,通过程序设计实现抽奖的随机,通过算法研究实现抽奖的相对均衡.本文主要介绍了系统原理以及主要程序的设计. 系统组成及原理 抽奖系统主要由来宾登记.奖票管理.幸运抽奖.获奖查询四个基本模块构成,登记模块登记参加抽奖人员,奖票管理模块初始化参加抽奖人员名单

Access数据库安全策略之ASP式

 这种作法是比较专业但也是很安全的也是现在比较流行的作法,但是现在许多的人只是作了一半,只是将数据名改成ASP而以,这样的话直接用FlashGet之类的下载工具一样可以将数据库下载,这种方式的正确作法有两步: 第一步:在数据库内创建一个字段,名称随意,类型是OLE对象,内容设置为单字节型的" "<%",即(ASP代码chrB(asc("<")) & chrB(asc("%"))的运行结果) 第二步:将数据库改名为AS

带数据库的ajax+asp无限级分类树型结构,好东西别错过!

跟大家分享一下自己写的一个树型结构,参考了动力文章的无限极分类树形结构数据库,看演示吧http://asptree.guaishi.org/aspajax/ 下面是核心类代码,注释是后来加的,可能有些写的不太正确 复制内容到剪贴板 代码: <%'数据库字段为类属性,添加.删除.修改.操作检查等函数为类的方法Class Cls_Leibie    Private nClassID,sClassName,nParentID,sParentPath,nDepth,nRootID,nChild,nOrd

Windows2008 64位IIS7+ACCESS数据库无法打开Asp页面

  1. 让IIS7支持ASP Windows Vista中IIS7是默认不安装的,所以在安装完Windows Vista之后如果需要安装IIS7的话,就要自己动手了.安装的步骤为:开始>控制面板>程序>打开或关闭Windows功能>Internet信息服 务(以前操作系统版本里面的"Windows components" 在Vista里面叫做"Programs and Features").IIS7安装时需要注意的是,如果需要ASP.ASP

通过ASP与ACCESS数据库建立连接(附源码)(2)

三)关键部分:建立与数据库的联系并将表单中收集到的信息添加到ACCESS数据库中. ASP代码放在〈%和%>之间. <%CompanyName = Request("CompanyName")CName = Request("CName")City = Request("City")Tel = Request("Tel") 以上,首先取得表单中填写的数据,使用ASP的Request对象非常容易可以实现数据的收集.双

利用C#远程存取Access数据库

目前,基于数据库服务器的桌面管理程序和Web程序已经有太多的应用了,尤其是网络的大量普及,孤立地数据库管理系统无法胜任分布式管理应用,但是面对基于Access数据库的现有的桌面应用我们也无法完全的摒弃. 我们利用.Net 远程处理功能将连接和存取Access的行为封装为一个远程对象,供网络中其它客户端通过调用该远程对象来存取实际的Access数据库.我们以 C# 2005 为开发语言来实现上述功能. 一.技术要点 我们都知道Windows应用程序在运行时会启动一个进程,其总包括若干线程,不同的进

access-有关Access数据库求助

问题描述 有关Access数据库求助 小女电脑小白一只,最近写论文用到一个基于Access数据库的软件叫MyDEA,要运行程序时,总是弹出一个界面,写着:作为事件属性设置而输入表达式"MouseMove"产生了如下错误:对象或类不支持的事件集.我根本看不懂这是什么意思,请教各位大神了. 解决方案 贴个图,看一看错误,再详细一点?? http://blog.csdn.net/suwu150/article/details/51009731 解决方案二: 在.net中连接ACCESS数据库

利用ASP和Access数据库制作局域网网上答题系统

 信息社会对人的学历.素质要求越来越高,人们为了找到前途更好.收入更加诱人的工作岗位,必须通过各种各样的考试如注册会计师资格考试.司法资格考试等等,而各种各样的试题资料也应运而生,但所有的资料所共有的一个缺点就是使用上的不方便.不灵活.及效率不高,本网上答题系统正是为了弥补这些诸多不便而编制的.适合于局域网并能在单机上运行的系统,下面就详细介绍本系统的编制及使用方法. 一.界面  如图所示:  二.程序组成 本系统由Index. asp.Lkzk.asp.Save.asp.Db0.fun 四个小