您现在的位置: 军旅同心-旅游自驾-军旅文学 >> 读书赏析 >> 学习园地 >> 电脑网络 >> 学习资料 >> 正文
ASP与SQL网站数据库程序设计(15)
作者:.. 文章来源:科学出版社 点击数: 更新时间:2004-1-25 1:03:54
取的数据几乎相同,因此在程序代码方面也只是稍微有些差异。因此,在这里仅介绍不同的程序段部分,以下是这个程序段的实际内容与说明:

 

NewArrival.asp程序段

03: <%

04: Response.Expires = 0

05: MaxRecords = 500

06: ' ProductShow 展示产品的内容

07:  Set OBJConn = Server.CreateObject("ADODB.Connection")

08:  OBJConn.Open "Trade", "test", "test1"

09:  On Error Resume Next

10:

11:  SQL = "Select 全图预览方式 From 系统信息"

12:  Set Rs = OBJConn.Execute(SQL)

13:  FullViewMethod = Cint(rs.Fields("全图预览方式"))

14:

15:  SQL = "Select * From 产品基本信息 Where 新上市=1 Order By 产品代号"

程序说明

以下的这段程序是“ProductShow.asp”在取得表记录时所使用的程序代码:

16:  SQL = "Select * from 产品基本信息 Where 类别编号 = " & request.querystring("ClassifyNo") & " order by 产品代号"

这两段程序的共同点在于都是将查询结果的Recordset存放到Datas的数组变量中;不同点则在于SQL QueryWhere”表达式的不同而已。在“ProductShow.asp”程序中,取出的是与类别编号相符的记录;在“NewArrival.asp”程序中,取出的则是“新上市”字段值为“1”的记录。

由于在SQL Server之中,并不具有Logic字段(是/否字段)。因此在SQL Server的表中,希望表示“是”或“否”的操作时,可以使用“Bit(位)”类型的字段。这是因为位字段的数值只有两种,“0”和“1”,而这刚好与Access数据库中的“是/否”字段相符合。

14-6  索取详细信息

在整个范例系统所应用的各种技术中,“MoreInfo.asp”这个子系统可以说是最重要、程序代码最长、应用技术最广的一个子系统。对于这个子系统而言,可以说是整本书的缩影。以下是在这个子系统中,所使用的表名以及各种技术的列表:

表:

·        产品基本信息:查询产品各项信息。

·        用户基本信息:存放用户所填写的资料。

·        系统信息。

使用的程序语言:

·        ASP 多种对象、程序语法

·        HTML文件

·        CSS语法

·        javascript 程序语言

·        ADO对象

·        CDO对象

·        SQL 语句

从上述所列的各种表、相关技术来看,这个子系统确实是本书的缩影。下图所示的是这个子系统在所有数据齐全的情况下,正常运行时的执行结果。

14-7  正常的执行结果

14-6-1 未选择产品信息需求的处理

这段程序代码主要是用于防止不确定产品资料详细信息的索取。通常这种设计方式可以在工作效率上,节省许多后台操作人员的作业时间。以下是这项功能的执行结果、程序段以及程序说明的内容。

出现对话框的原因在于用户尚未选择各项产品中的“更多信息”超级链接。以下程序是控制这个画面程序段的详细内容。

MoreInfo.asp程序段

16: ' ProductShow 展示产品的内容

17:  Set OBJConn = Server.CreateObject("ADODB.Connection")

18:  OBJConn.Open "Trade", "test", "test1"

19:

20:  On Error Resume Next

21:  if ubound(Datas,1) > 0 then

22:     SQL = "Select * from 产品基本信息 Where "

23:     for i = 1 to ubound(datas ,1 )

24:       SQL = SQL & "产品代号='" & datas(i) & "' or "

25:     next

26:     if right(SQL , 4) = " or " then

27:       SQL = mid(SQL , 1 , len(SQL) - 4 )

28:     end if

29:       SQL = SQL & " order by 产品代号"

30:     Set Rs = OBJConn.Execute(SQL)

31:     if not rs.eof then

32:       datas = rs.getrows(MaxRecords)

33:     end if

34:  else

35:     Strings = "尚未选择任何产品的详细信息\n请先选取产品!"

36:     call showinfo(Strings,"",0)

37:  end if

程序说明

23~25行:这是一个产生多重条件的SQL Query产生器。

笔者所使用的是分割Cookies的内容,同时将这些记录存放在Datas的数组中。同时,利用Datas数组中最大元素作为“For…Next”循环语句的计数范围,自动产生“"产品代号='" & datas(i) & "' or "SQL Query 的表达式。

26~28行:删除SQL字符串变量中最后面的“ or ”字符串。因为这将会造成SQL Where表达式运算错误,因此在SQL表达式的最后面不需要再加上“or”逻辑运算符。

29行:设置Recordset集合的记录内容,是根据“产品代号”作为记录的排列方式。

36行:如果Cookies的内容只有Cookies的到期日时,则调用子程序ShowInfo,并且将希望显示的文字内容传递过去。

MoreInfo.asp程序段

211: <% sub showInfo(Strings,URL,Styles) %>

212: <BODY topmargin=20 leftmargin=20 background="/Images/ Background.jpg">

213: </body>

214: <script language="javascript">

215:     alert("<% = Strings %>");

216:     <% if Styles = 1 then %>

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页


更多
免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:烟灰缸    责任编辑:烟灰缸 
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 网站地图 | 版权申明 | 网站公告 | 管理登录 |