The QueryString,Form and
ServerVariables
collections of the Request object are implemented using the newObjects Collections
components from the ALP Run-time
library (VarDictionary and UtilStringList). This helps to decrease the size of the code required by the ALP by
using shared components, but this also means that you must be careful
not to use any extended features available if you want to keep the
application compatible with IIS. The newObjects
Collections are dynamic universal collections used in different applications thus they
support adding removing of the elements more error safety and additional properties. Thus
relatively to the Request collections in the Microsoft ASP they have extended features.
To avoid tempting the developers use the extended features the ASP
documentation in ALP describes only the features common for ALP and
classic ASP. However you can always look into the VarDictionary
and UtilStringList
documentation if you want to see what extended features can be used.
The structure of all the Request collections is the same. For example
the Form collection is constructed this way:
Set x = Request.Form - returns a VarDictionary collection with all
the form fields in the request. Thus Request.Form(x) will return a form
field element. x - can be numeric index between 1 and Request.Form.Count
or a field name.
Each field element may contain one or more values, because more than
one form fields may have the same name. Thus the Form field element is
represented by UtilStringList collection which contains all the
values as strings. This means that you can refer to a value like this:
Request.Form(field_index_or_name)(value_index), where the value_index
can be between 1 and Request.Form(field_index_or_name).Count
Changes in version 1.0.5
In previous versions of ALP Request Collections returned empty
strings for the missing elements - i.e. indexed elements that doesn't
exist in the collection (for example QueryString parameter that is not
passed in the request). From version 1.0.5 behavior is changed in ASP
compatible manner and now empty variants are returned. This
incompatibility caused problems for the ASP pages written in VBScript
- conversions of the missing values from the Request Collections
caused errors when using conversion functions such as CLng, CInt and
so on. See also UtilStringList.
The old behavior is preserved whenever the ALP Application settings
for the ASP module are set to IIS compatibility level 0, any level
greater than 0 will assume the new behavior.
|