ASP in a Nutshell, 2nd Edition by A. Keyton Weissinger The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was last updated June 19, 2006 Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification UNCONFIRMED errors and comments from readers: {14} Line 3 of Example 2-1 now reads: Function AlertJS() Should read: function AlertJS() [34] The last line of code on the page now reads: Application.Contents(1)="California" Should read: Application(1)="California" {35} Some quotation marks are missing from the second block of code. It currently reads: ... If IsEmpty(Application.Contents.Item(STATE_SEVENTH)) Then Application.Contents(STATE_SEVENTH)="Texas" End If ... Should read: ... If IsEmpty(Application.Contents.Item("STATE_SEVENTH")) Then Application.Contents("STATE_SEVENTH")="Texas" End If ... (40) 4th line from top; Error Type: Active Server Pages, ASP 0134 (0x80004005) The object has an invalid ProgID of 'MSWC.MyInfo'. /ASP in a Nutshell Examples/Text Book Examples/Ch04_Ex_StaticObjects.asp, line 10 {57} very last line; The object objASPError is not declared before being used and need to be. Line Set objASPError = Server.GetLastError() should have this line somewhere before it : Dim objASPError [85] The code above the Example now reads: blnHasKeys = Response.Cookies("Colors").HasKeys If blnHasKeys Then strColor3 = Response.Cookies("Colors")("color3") End If Should read: blnHasKeys = Request.Cookies("Colors").HasKeys If blnHasKeys Then Response.Cookies("Colors")("color3") = strColor3 End If [87] 3rd line, FTP reference:ftp://ftp.isi.edu/internet-drafts/draft-ietf-http- state-man-mec-08.txt; Displays message: The page can not be displayed. This link works - http://public.research.mimesweeper.com/Standards/IETF/Draft/draft-ietf-http-state-man-mec-08.txt {90} Start of page; 1. The variable SubKey has not been declared (you declare everything else so I assume you're recommending option explicit). 2. VBScript arrays are option base 0, so you appear to be dimensioning aryPeripherals one element larger than necessary, and then not using the first element. It works, but I found it confusing. Dimensioning the array correctly would have helped me understand that the form elements start at 1 and the array elements start at 0. As it is I spent half hour playing about with the script to check this! [101] tip (owl); The information in this tip is spurious, at best. A SafeArray is not a simple array, but to claim it is not an array at all is misleading. To say that the bounds information is not available through script is completely wrong (see LBound and UBound). [109] Most of the page.; Warnings are given to the effect that the Microsoft documentation is wrong with respect to the syntax of this item, but this is untrue. The Response.Charset property, in fact, works just like any other property, and not like a method. (Based on testing IIS4 and IIS5.) [142] top of the page; In the notes section, it states that you CAN'T use "../" with Server.MapPath. In actuality, you CAN use "../" when mapping a path. I was doing so when connecting to an access database in another directory and it worked. My exact code was: mPath = Server.MapPath("../../databases") & "\" I am using Windows 2000 and IIS 5(ASP 3) [153] On Page 153 of Asp in a Nutshell, 2nd Edition, there is a 'Notes' section dealing with the Session Timeout property. In the third paragraph on that page, the author states that the "property affects all user sessions, not just the current session...." He continues with an example of how this might work. This is incorrect. If you set a timeout value, it affects only the current session. Other timeout values in affect for other users running the same application are not affected and each can have different timeout values. We originally wrote an application assuming that the statement in the book was correct. However, we discovered after the application was in the field that the session timeout is user specific. We have since run careful tests to confirm that this is the case and have modified our application and documentation accordingly. {157} Lines 13 and 14 in the second code sample now read: Session.Content.Item("SessionVar1") = strVar1 Session.Content("SessionVar2") = strVar2 Should read: Session.Contents.Item("SessionVar1") = strVar1 Session.Contents("SessionVar2") = strVar2 {168} Field Object. As far as I know Field Objects have a property called Value, probably the most important Field property. Maybe you reference this property in another area. (171) 11th line of the second source code example on the page; End Sub The Sub statement is from VBScript, but is not supported in JScript. The line should be changed to: end function ?172? [172] TRANSACTION: Parameters; The descriptions for both the "Supported" and "Not_Supported" parameters read: "Instructs the web server not to start a transaction." Is this true because these parameters ar not yet supported, or is this an error? {195} In the description for "Provider" in Table 12-5, change "MSADSQL" to "MSDASQL". {202} AbsolutePage description (1st item in Table 12-20); The last sentence of this description states that the AbsolutePage property is "a read-only value of type Long." This property is in fact NOT read-only. You can use this property to set OR return the page on which the current record resides. See: http://msdn.microsoft.com/library/psdk/dasdk/mdap436t.htm (205) GetRows under left-hand list of methods; This has a note "a" indicating "discussed in more detail later in this chapter." There is no discussion later in the chapter. The Methods section of the chapter proceeds from Execute directly to Move. I was specifically looking for information on the Rows parameter of GetRows today. If GetRows is not going to be included, then th ere should be no note "a" (but I would really prefer it if the GetRows information were included and the note "a" were true!). [316] First bullet under 'Rules at a Glance'; Paragraph states that 'If maximum_value is greater than initial_value, and no Step keyword is used or the step counter is positive, the For...Next loop is ignored (etc.)' Paragraph should state that 'If initial_value is greater than maximum_value...'