UltraDev 4 中多项搜索的制作方法五

main_result.asp

  该页面的最主要部分就是记录集的建立,在这个记录集中我们要根据页传递过来的参数来生成变量,再利用SQL语句以变量值进行查询,最后生成所需的记录集。

(1) 我们先看记录集中变量的建立:

在记录集建立的“advanced...”视窗中,点击“Variables”右边的“+”按钮增加一个变量,如下表所示

序号 Name Default Value Run-time Value
变量名 默认值 运行时刻值
1 MM_name % Request.QueryString("Name")
2 MM_Author
% Request.QueryString("Author")
3 MM_Date % Request.QueryString("Date")
4 MM_Price1 1 Request.QueryString("Price1")
5 MM_Price2 9999 Request.QueryString("Price2")
6 MM_Quality % Request.QueryString("Quality")
7 MM_Summary % Request.QueryString("Summary")
8 MM_Sort ID Request.QueryString("Sort")
9 MM_Array DESC Request.QueryString("Array")


(为方便说明这里增加序号一栏)

先说明这里的默认值表示用户在没有选择查询条件时,图书记录就是按照这个值来显示的。

  1. 序号1,MM_name是书名的变量,默认值中的“%”在SQL中表示通配符,这里表示获取所有记录,运行时刻值中的“Request.QueryString("Name")”表示从上页以GET方式传递过来的参数中获得“Name”参数值;
  2. 序号2、3、6、7与序号1意思相同;
  3. 序号4、5是价格的上、下限值,默认值取1-9999一般是不会有问题的;
  4. 序号8是排序的条件,也就是按照哪个字段来排序,默认是“ID”;
  5. 序号9是排序的方式,默认为递减“DESC”。


(2) 设定完变量后我们要在“SQL”文本域中写入sql的查询语句

  1. SELECT *
  2. FROM Books
  3. WHERE
  4. Name LIKE '%MM_name%'
  5. AND Author LIKE '%MM_Author%'
  6. AND Date LIKE 'MM_Date'
  7. AND MM_Price1 < Price AND Price < MM_Price2
  8. AND Quality LIKE 'MM_Quality'
  9. AND Summary LIKE '%MM_Summary%'
  10. ORDER BY MM_Sort MM_Array

 

解释:

  1. 取得所有字段
  2. 在Books表中
  3. 过滤
  4. Name字段内具有MM_Name的所有记录(在变量前后加上%表示变量前后或许存在字符串,再加上'是因为sql中规定字符串必须用''包含,而数字无此规定)
  5. 与第四行同样解释……
  6. ……
  7. 下限变量MM_Price1值小于Price字段并且Price字段小于上限变量MM_Price2
  8. 与第四行同样解释,不过这里的字符是肯定相同所以不必加上%了
  9. ……
  10. 用MM_Sort变量中的字段名以MM_Array变量中的排序方式进行排序