The Catalog.asp module retrieves the list of products by using a Command object with a stored procedure and displays the list. The main steps are:
This application first uses the following steps to define a connection to a database by setting up a Connection object to reference the data source:
The corresponding code follows:
Set connPubs = Server.CreateObject("ADODB.Connection")
connPubs.ConnectionTimeout = Session("accts_ConnectionTimeout")
connPubs.CommandTimeout = Session("accts_CommandTimeout")
connPubs.ConnectionString = "DSN=Sample;UID=sa;"
connPubs.open
After creating and opening a connection, the application sets up a Command object by using the following steps:
The corresponding code follows:
Set cmdPubs = Server.CreateObject("ADODB.Command")cmdPubs.CommandText = "sp_get_products_by_category"
cmdPubs.CommandType = adCmdStoredProc
After creating a Command object, the application sets up an input Parameter object using the following steps:
@piCategoryID of type Integer with a size of 4
The corresponding code follows:
set p = cmdPubs.Parameters
p.Append cmdPubs.CreateParameter("@piCategoryID", adInteger, adParamInput, 4)
The following code requests and assigns a value to the input parameter:
cmdPubs("@piCategoryID") = Request("cCategoryID")
The following code specifies the connection to use and then executes the query that returns the Recordset object:
Set cmdPubs.ActiveConnection = connPubs
set rsPubs = cmdPubs.Execute
The following code loops through the Recordset, extracts the values of the Field objects, and displays them. The application closes the connection when it reaches the end of the Recordset.
if rsPubs.EOF then
%>
<TR>
<TD>
No items found
<TD>
<%
else
do until rsPubs.EOF
htmlProductID = rsPubs("ProductID")
htmlCategoryID = rsPubs("CategoryID")
htmlProductPrice = rsPubs("ProductPrice")
htmlProductName = rsPubs("ProductName")
htmlProductDescription = rsPubs("ProductDescription")
%>
<TR>
<TD><A HREF="Product.asp?iProductID=<% = htmlProductID %>">
<% = htmlProductName %></A>
<TD><% = htmlProductPrice %>
<%
rsPubs.MoveNext
Loop
rsPubs.close
end if