Программа 22.8. Файл ALLPRODS ASP
<HTML>
<%
Set DBObj =
Server.CreateObject("ADODB.Connection")
DBObj.Open "NWindDB"
SQLQuery = "SELECT CategoryID, CategoryName FROM Categories"
Set RSCategories = DBObj.Execute(SQLQuery)
%>
<CENTER>
<H1>List Of Product Categories</H1>
</CENTER>
<TABLE>
<% Do While Not RSCategories.EOF %>
<TR>
<TD> <FONT FACE-"Verdana" SIZE=2>
<% CategoryName = RSCategories ("CategoryName") %>
<A HREF="/ASPages/ProdCat.asp?CategoryID= _
<% "RSCategories ("CategoryID") %>&CategoryName= _
<% =CategoryName %> "> <% = CategoryName %> </A>
</FONT>
</TD>
</TR>
<%
RSCategories.MoveNext
Loop
DBObj.Close
%>
</HTML>
Файл PRODCAT ASP, обрабатывающий запросы, сделанные страницей ALLPRODS ASP, несколько сложнее Сначала он извлекает значения параметров, переданных клиентом Операторы
ReqCategory=Request.QueryString ("CategoryID")
ReqName=Request.QueryString ("CategoryName")
сохраняют эти значения в переменных ReqCategory и ReqName
Семейство QueryString хранит эти значения для дальнейшего использования Прочесть их, воспользовавшись соответствующими именами, не составляет труда Значение переменной ReqCategory необходимо для построения SQL-оператора, извлекающего записи из таблицы Products
SQLQuery = "SELECT ProductName, UnitPrice, UnitInStock _
FROM Products WHERE CategoryID = " & ReqCategory & " _
ORDER BY ProductName"
Этот SQL-оператор возвращает набор записей, содержащий сведения о товарах из выбранной категории. Затем сценарий просматривает записи и выводит их в строках таблицы. Фрагмент кода, который строит таблицу, выглядит достаточно сложно, поскольку в него входят HTML-операторы и операторы сценария. Чтобы понять, как он работает, замените каждое выражение, заключенное в теги <% и %>, соответствующем значением (например, наименованием товара в выражении <% = RSProducts ("ProductName") %> и т.д.).