home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 32 / IOPROG_32.ISO / SOFT / SqlEval7 / devtools / samples / ADO / Web / update.asp < prev   
Encoding:
Text File  |  1998-10-04  |  10.6 KB  |  270 lines

  1. <%@ LANGUAGE="VBSCRIPT" %>
  2.  
  3. <HTML>
  4. <HEAD>
  5. <META NAME="GENERATOR" Content="Microsoft Visual InterDev 6.0">
  6. <META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
  7. <TITLE>NIMS - Update a Product</TITLE>
  8. <LINK REL="stylesheet" TYPE="text/css" HREF="nimstyle.css">
  9. <!-- #include file="adovbs.inc" -->
  10. <SCRIPT LANGUAGE="VBScript">
  11. <!--
  12. 'This clientside VBScript validates the Update form to make sure the user 
  13. 'entered valid product information.
  14. DIM ValidProduct
  15.  
  16. Sub ValidateUpdateForm
  17.  
  18.     SET Update = document.UpdateForm
  19.     ValidProduct = True
  20.  
  21.     Call CheckField (Update.ProductName.Value, "Please enter a product name!")
  22.     Call CheckField (Update.QuantityPerUnit.Value, "Please enter a quantity per unit!")
  23.  
  24.     Call CheckField (Update.UnitPrice.Value, "Please enter a Unit Price!")
  25.     Call CheckFieldNumeric (Update.UnitPrice.Value, "The Unit Price must be a monetary value!")
  26.     Call CheckMonetaryField
  27.     
  28.     Call CheckField (Update.UnitsInStock.Value, "Please enter Units In Stock!")
  29.     Call CheckFieldNumeric (Update.UnitsInStock.Value, "Units In Stock must be a numeric value!")
  30.     
  31.     Call CheckField (Update.UnitsOnOrder.Value, "Please enter Units On Order!")
  32.     Call CheckFieldNumeric (Update.UnitsOnOrder.Value, "Units On Order must be a numeric value!")
  33.     
  34.     Call CheckField (Update.ReorderLevel.Value, "Please enter the Reorder Level!")
  35.     Call CheckFieldNumeric (Update.ReorderLevel.Value, "The Reorder Level must be a numeric value!")
  36.     
  37.     IF ValidProduct THEN
  38.         Update.Submit
  39.     END IF
  40.     
  41. END Sub
  42.  
  43. Sub CheckField (ByVal strFieldValue, ByVal strMsg)
  44.   IF ValidProduct THEN 'Check to see if the field is invalid
  45.     'If a field name was not entered, prompt the user.
  46.     IF strFieldValue = "" THEN
  47.         ValidProduct = False
  48.         MsgBox strMsg
  49.     END IF
  50.   END IF
  51. END Sub 'Check Field
  52.  
  53. Sub CheckFieldNumeric (ByVal strFieldValue, ByVal strMsg)
  54.     IF ValidProduct THEN 'Check to see if the field is invalid with non-numeric values
  55.         IF NOT IsNumeric(strFieldValue) THEN
  56.             ValidProduct = False
  57.             MsgBox strMsg
  58.         ELSE 'It is numeric, make sure it is a positive number
  59.             IF NOT strFieldValue >= 0 THEN 'Set project to not valid
  60.                 ValidProduct = False
  61.                 MsgBox "All numeric values must be greater than or equal to zero!"
  62.             END IF
  63.         END IF
  64.     END IF
  65. END Sub 'Check Field Numeric
  66.  
  67. Sub CheckMonetaryField
  68.     IF ValidProduct THEN 'Check to see if the Unit Price field value is within
  69.                          'the proper range
  70.         IF UpdateForm.UnitPrice.Value > 99999999999999.99 THEN
  71.             ValidProduct = False
  72.             MsgBox "The unit price must be less than $99,999,999,999,999.99!"
  73.         END IF
  74.         
  75.     END IF
  76. END Sub 'Check Monetary Field
  77. -->
  78. </SCRIPT>
  79. </HEAD>
  80. <BODY>
  81.  
  82. <% 
  83. 'Retrieve the ProductID to be updated from the querystring
  84. ProductID = Request.QueryString("ProductID")
  85.  
  86. 'Reference the Session connection variable
  87. cn = Session("cnn")
  88.  
  89. 'Create a recordset
  90. Set ProductInfo = Server.CreateObject("ADODB.Recordset") 
  91.  
  92. 'Create a query string that retrieves the information for product number "ProductID"
  93. querystr = "SELECT ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock," _
  94.         & "UnitsOnOrder, ReorderLevel, Discontinued, ProductID FROM Products" _
  95.         & " WHERE ProductID = " & ProductID 
  96.  
  97. 'Set all the properties for the recordset and then open it.
  98. ProductInfo.ActiveConnection = cn
  99. ProductInfo.CursorType = adOpenKeyset
  100. ProductInfo.LockType = adLockOptimistic
  101. ProductInfo.Source = querystr
  102. ProductInfo.Open
  103.  
  104. 'When called from the display page, output a form with the product's current
  105. 'information so that it may be edited or updated by the user.
  106. IF Request.QueryString("Update") <> "1" THEN 
  107.  
  108.     'Retrieve the Supplier & Category IDs from the Recordset so that they
  109.     'can be used to display the actual Supplier and product Category in the 
  110.     'selection box in the update product form.
  111.     SupplierID = ProductInfo.Fields(1)
  112.     CategoryID = ProductInfo.Fields(2) %>
  113.  
  114.     <CENTER>
  115.     <H2>Update a Product's information the Inventory</H2>
  116.     </CENTER>
  117.     <HR>
  118.  
  119.     <P>To update a product's information in the Northwind Inventory, make any changes
  120.     necessary in the following form and then press the "Update Information" button at the bottom
  121.     of the page.</P>  
  122.  
  123.     <P>You can also press the "Reset" button to undo any changes before you click the
  124.     "Update Information" button.</P>
  125.  
  126.     <FORM NAME="UpdateForm" ACTION="update.asp?ProductID=<%=ProductID%>&Update=1" METHOD=POST>
  127.     <TABLE ALIGN=CENTER CLASS=formtable CELLPADDING=2>
  128.         <TR>
  129.             <TD>Product Name</TD>
  130.             <TD><INPUT TYPE="text" NAME="ProductName" VALUE="<%=ProductInfo.Fields(0)%>"></TD>
  131.         </TR>
  132.         <TR>
  133.             <TD>Supplier</TD>
  134.             <TD><SELECT NAME="SupplierID" SIZE=1>
  135.                 <OPTION VALUE=18 <% IF SupplierID = 18 THEN%>SELECTED<%END IF%>>Aux joyeux eccl├⌐siastiques
  136.                 <OPTION VALUE=16 <% IF SupplierID = 16 THEN%>SELECTED<%END IF%>>Bigfoot Breweries
  137.                 <OPTION VALUE=5  <% IF SupplierID = 5  THEN%>SELECTED<%END IF%>>Cooperativa de Quesos 'Las Cabras'
  138.                 <OPTION VALUE=27 <% IF SupplierID = 27 THEN%>SELECTED<%END IF%>>Escargots Nouveaux
  139.                 <OPTION VALUE=1  <% IF SupplierID = 1  THEN%>SELECTED<%END IF%>>Exotic Liquids
  140.                 <OPTION VALUE=29 <% IF SupplierID = 29 THEN%>SELECTED<%END IF%>>For├¬ts d'├⌐rables
  141.                 <OPTION VALUE=14 <% IF SupplierID = 14 THEN%>SELECTED<%END IF%>>Formaggi Fortini s.r.l.
  142.                 <OPTION VALUE=28 <% IF SupplierID = 28 THEN%>SELECTED<%END IF%>>Gai p├óturage
  143.                 <OPTION VALUE=24 <% IF SupplierID = 24 THEN%>SELECTED<%END IF%>>G'day, Mate
  144.                 <OPTION VALUE=3  <% IF SupplierID = 3  THEN%>SELECTED<%END IF%>>Grandma Kelly's Homestead
  145.                 <OPTION VALUE=11 <% IF SupplierID = 11 THEN%>SELECTED<%END IF%>>Heli S├╝├ƒwaren GmbH & Co. KG
  146.                 <OPTION VALUE=23 <% IF SupplierID = 23 THEN%>SELECTED<%END IF%>>Karkki Oy
  147.                 <OPTION VALUE=20 <% IF SupplierID = 20 THEN%>SELECTED<%END IF%>>Leka Trading
  148.                 <OPTION VALUE=21 <% IF SupplierID = 21 THEN%>SELECTED<%END IF%>>Lyngbysild
  149.                 <OPTION VALUE=25 <% IF SupplierID = 25 THEN%>SELECTED<%END IF%>>Ma Maison
  150.                 <OPTION VALUE=6  <% IF SupplierID = 6  THEN%>SELECTED<%END IF%>>Mayumi's
  151.                 <OPTION VALUE=19 <% IF SupplierID = 19 THEN%>SELECTED<%END IF%>>New England Seafood Cannery
  152.                 <OPTION VALUE=2  <% IF SupplierID = 2  THEN%>SELECTED<%END IF%>>New Orleans Cajun Delights
  153.                 <OPTION VALUE=13 <% IF SupplierID = 13 THEN%>SELECTED<%END IF%>>Nord-Ost-Fisch Handelsgesellschaft mbH
  154.                 <OPTION VALUE=15 <% IF SupplierID = 15 THEN%>SELECTED<%END IF%>>Norske Meierier
  155.                 <OPTION VALUE=26 <% IF SupplierID = 26 THEN%>SELECTED<%END IF%>>Pasta Buttini s.r.l.
  156.                 <OPTION VALUE=7  <% IF SupplierID = 7  THEN%>SELECTED<%END IF%>>Pavlova, Ltd.
  157.                 <OPTION VALUE=9  <% IF SupplierID = 9  THEN%>SELECTED<%END IF%>>PB Kn├ñckebr├╢d AB
  158.                 <OPTION VALUE=12 <% IF SupplierID = 12 THEN%>SELECTED<%END IF%>>Plutzer Lebensmittelgro├ƒm├ñrkte AG
  159.                 <OPTION VALUE=10 <% IF SupplierID = 10 THEN%>SELECTED<%END IF%>>Refrescos Americanas LTDA
  160.                 <OPTION VALUE=8  <% IF SupplierID = 8  THEN%>SELECTED<%END IF%>>Specialty Biscuits, Ltd.
  161.                 <OPTION VALUE=17 <% IF SupplierID = 17 THEN%>SELECTED<%END IF%>>Svensk Sj├╢f├╢da AB
  162.                 <OPTION VALUE=4  <% IF SupplierID = 4  THEN%>SELECTED<%END IF%>>Tokyo Traders
  163.                 <OPTION VALUE=22 <% IF SupplierID = 22 THEN%>SELECTED<%END IF%>>Zaanse Snoepfabriek
  164.                 </SELECT>
  165.             </TD>
  166.         </TR>
  167.         <TR>
  168.             <TD>Category</TD>
  169.             <TD><SELECT NAME="CategoryID" SIZE=1>
  170.                 <OPTION VALUE=1 <% IF CategoryID = 1 THEN%>SELECTED<%END IF%>>Beverages
  171.                 <OPTION VALUE=2 <% IF CategoryID = 2 THEN%>SELECTED<%END IF%>>Condiments
  172.                 <OPTION VALUE=3 <% IF CategoryID = 3 THEN%>SELECTED<%END IF%>>Confections
  173.                 <OPTION VALUE=4 <% IF CategoryID = 4 THEN%>SELECTED<%END IF%>>Dairy Products
  174.                 <OPTION VALUE=5 <% IF CategoryID = 5 THEN%>SELECTED<%END IF%>>Grains/Cereals
  175.                 <OPTION VALUE=6 <% IF CategoryID = 6 THEN%>SELECTED<%END IF%>>Meat/Poultry
  176.                 <OPTION VALUE=7 <% IF CategoryID = 7 THEN%>SELECTED<%END IF%>>Produce
  177.                 <OPTION VALUE=8 <% IF CategoryID = 8 THEN%>SELECTED<%END IF%>>Seafood
  178.                 </SELECT>
  179.             </TD>
  180.         </TR>
  181.         <TR>
  182.             <TD>Quantity Per Unit</TD>
  183.             <TD><INPUT TYPE="text" NAME="QuantityPerUnit" VALUE="<%=ProductInfo.Fields(3)%>"></TD>
  184.         </TR>
  185.         <TR>
  186.             <TD>Unit Price</TD>
  187.             <TD><INPUT TYPE="text" NAME="UnitPrice" VALUE="<%=ProductInfo.Fields(4)%>"></TD>
  188.         </TR>
  189.         <TR>
  190.             <TD>Units In Stock</TD>
  191.             <TD><INPUT TYPE="text" NAME="UnitsInStock" SIZE=4 MAXLENGTH=4 VALUE="<%=ProductInfo.Fields(5)%>"></TD>
  192.         </TR>
  193.         <TR>
  194.             <TD>Units On Order</TD>
  195.             <TD><INPUT TYPE="text" NAME="UnitsOnOrder" SIZE=4 MAXLENGTH=4 VALUE="<%=ProductInfo.Fields(6)%>"></TD>
  196.         </TR>
  197.         <TR>
  198.             <TD>Reorder Level</TD>
  199.             <TD><INPUT TYPE="text" NAME="ReorderLevel" SIZE=4 MAXLENGTH=4 VALUE="<%=ProductInfo.Fields(7)%>"></TD>
  200.         </TR>
  201.         <TR>
  202.             <TD>Discontinued</TD>
  203.             <TD><INPUT TYPE="radio" NAME="Discontinued" 
  204.                  VALUE=1 <% IF ProductInfo.Fields(8) THEN%>CHECKED<%END IF%>>True
  205.                 <INPUT TYPE="radio" NAME="Discontinued" 
  206.                  VALUE=0 <% IF NOT ProductInfo.Fields(8) THEN%>CHECKED<%END IF%>>False
  207.             </TD>
  208.         </TR>
  209.         <TR>
  210.             <TD></TD>
  211.             <TD><INPUT TYPE="button" NAME="UpdateButton" 
  212.                  VALUE="Update Information" onClick="VBScript:ValidateUpdateForm">
  213.                 <INPUT TYPE="reset" NAME="reset" VALUE="Reset"></TD>
  214.         </TR>
  215.     </TABLE>
  216.     </FORM>
  217.  
  218. <% ELSE 'Update the recordset with the information the user provided
  219.         'in the submitted update form.
  220.  
  221.     ProductInfo("ProductName") = Request.Form("ProductName")
  222.     ProductInfo("SupplierID") = Request.Form("SupplierID")
  223.     ProductInfo("CategoryID") = Request.Form("CategoryID")
  224.     ProductInfo("QuantityPerUnit") = Request.Form("QuantityPerUnit")
  225.     ProductInfo("UnitPrice") = Request.Form("UnitPrice")
  226.     ProductInfo("UnitsInStock") = Request.Form("UnitsInStock")
  227.     ProductInfo("UnitsOnOrder") = Request.Form("UnitsOnOrder")
  228.     ProductInfo("ReorderLevel") = Request.Form("ReorderLevel")
  229.     ProductInfo("Discontinued") = Request.Form("Discontinued")
  230.     
  231.     'Move the cursor to the beginning of the recordset so that the updated
  232.     'information can be outputted to the user.
  233.     ProductInfo.MoveFirst
  234.         
  235.     'Output the updated product information to the user %>
  236.     <H3>The following product information has been updated in the inventory database:</H3>
  237.     <HR>
  238.  
  239.     <TABLE CELLPADDING=5>
  240.         <TR>
  241.  
  242. <%        'Output the Table Header row
  243.         For i = 0 To 8
  244.                Response.Write "<TD CLASS=header>" & ProductInfo.Fields(i).Name & "</TD>"
  245.         NEXT %>
  246.     
  247.         </TR>
  248.         <TR>
  249.     
  250. <%        'Output the row containing the updated product's information  
  251.         For i = 0 to 8
  252.             Response.Write "<td>"
  253.             Response.Write ProductInfo.Fields(i).Value 
  254.             Response.Write "</TD>"
  255.         NEXT %>
  256.     
  257.         </TR>
  258.     </TABLE>
  259.  
  260. <% END IF 
  261.  
  262. 'Close the recordset after using it.
  263. ProductInfo.Close %>
  264.  
  265. <BR><BR><HR>
  266. <P>Return to the <A HREF="default.htm">Main Menu</A></P>
  267.  
  268. </BODY>
  269. </HTML>
  270.