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 Query“Where”表达式的不同而已。在“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] 下一页