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

2016-01-29 17:36 31 1 收藏

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

【 tulaoshi.com - ASP 】

      感觉做一个论坛不像想象中的那么容易,但也不像想象中的那么复杂:),经过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看实例并多多灌水呦:)..   

来源:https://www.tulaoshi.com/n/20160129/1502157.html

延伸阅读
在当前数据库领域,已有越来越多的人开始采用Access。它是一个功能强大的数据库管理系统和MIS系统开发工具,具有界面友好、易学易用、开发简单、接口灵活等特点。现将本人在使用Access时体会到的一些经验在此与大家交流。 数据库设计的技巧 1. 统一规划 所谓数据库设计是指从对现行非计算机管理的数据库系统的分析到最...
前题是必须安装好activeperl (505以上),以及MS Access 97 一. 安装Win32-ODBC模块 步骤1: 从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一个temp目录,共有三个文件: Readme Win32-ODBC.ppd Win32-ODBC.tar.gz 步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令: ppm install Win32-ODBC.ppd 二. 准备测...
第一种:使用JDBC的ACCESS驱动程序:在http://industry.java.sun.com/products/jdbc/drivers下载ACCESS的JDBC驱动程序。 第二种:使用JDBC-ODBC桥访问: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:dbaccess"); 第三种:直接访问ACCESS数据库,不使用JDBC-ODBC桥: Class.forNam...
这是我前段时间学数据库时做的一个小程序,采用DAO访问ACCESS数据库,程序的主界面如下,控制相对来说很是简单,实现了数据库的基本操作。如图一所示: 几点说明: 在程序中使用了CButtonStyle这个免费类库,它可以实现带位图的按位,这里是以加载图标的方式操作的,在InitButtonSytle()中,为了使代码更短小,用循环实现了图...
How to speed up database access Here is a trick to loop through a recordset faster. Often when looping through a recordset people will use the following code: Do While Not Records.EOF   Combo1.AddItem Records![Full Name]   Eecords.Movenext LoopThe problem is that everytime the database moves to the next re...

经验教程

970

收藏

96
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部