日期:2010-05-13  浏览次数:21034 次

  在网上介绍如何编写制作论坛的文章不少,但据我观察大多数的代码都有不同程度的错误,会误导大家。所以我写这篇文章的目的就是把经过我测试成功的代码与思路提供给大家。下面就让我们从数据库的建立开始:

  用access建立数据库:

  首先我们要建立一个存放帖子的数据库,在这里我介绍用access2000建立数据库的方法。

  我们先要建立一个名为news.mdb的数据库文件,然后在其中点“新建”选择“设计视图”建立两个表,一个名为details用来存放回复,另一个名为titles用来存放主题如图:

  制作过程详解:

  在titles中建立以下字段,如图:

  注意:

1 右键单击“titleID”选择“主键”,出现钥匙图形。
2 这里的“shu”不可以改为“number”否则会出现错误,王国容的那本《asp & web 数据库》中就犯了这样的错误。
3 将“日期/时间”类型的字段的默认值都设为now()

  在titles中建立以下字段,如图:

  将“日期/时间”类型的字段的默认值都设为now()。建立完成后,要设置这两个表的关联。点击 按钮,出现如下对话框:


  将titles中的titleID拖至details中的titleID上松手,出现如下对话框:(如图设置)

  然后保存就可以了。这样一个提供储存的数据库就建立好了。接下来我们要编写asp程序了。首先让我们先来分析论坛所需要的功能。大概需要以下几个功能:

1显示主题
2发布主题
3显示回复
4发布回复

  于是,我们根据这些功能,需要编写6个asp文件:
  title.asp、titlenew.asp、titleout.asp、detail.asp、detnew.asp、detout.asp
  还有一个文件是必需的(在我的程序中)adovbs.inc,它提供程序中的常数值如:“adopenstatic”。(点击这里下ADOVBS.INC载源文件)每个文件的代码:

  title.asp:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="CP_ACP"%>
<!--#include virtual="adovbs.inc"-->
<!--#include file="titleout.asp"-->
<%
    const head="我的论坛"
    dbpath=server.MapPath("news.mdb")
    set conn=server.CreateObject("adodb.connection")
    conn.open"driver={Microsoft Access Driver (*.mdb)};dbq="&dbpath
    sql="select titleID,createdate as 主题发布时间,lastnewsdate as 最后回复时间,name as 作者,shu as 回复篇数,subject as 主题 from titles order by lastnewsdate desc"
    set rs=server.CreateObject("adodb.recordset")
    rs.open