to skip navigation
computer keyboard

VA Home
OI&T Home
Enterprise
Information
Board (EIB)
Enterprise Architecture
IT News
IT Capital Investment
Austin Automation Center
Records
Electronic Reading Room 
Directives 
Telecom-
munications
eVA
Email Lists
Office of Information and Technology
Department of Veterans Affairs
 

Developing Web Database Applications
Using Active Server Pages (ASP)

By Walter Houser and Jason Hart

Table of Contents

  1. What are Active Server Pages?
  2. Setting Up an ODBC Connection
  3. Typical SQL Commands
  4. Active Data Objects
  5. Retrieving a Particular Record
  6. Adding, deleting and editing records
  7. Adding Records
  8. Editing a Record
  9. Deleting Records*
  10. Searching the Database
  11. Words of Wisdom
  12. References

Class Objectives

The objective of this class is to teach experienced web page authors how to:

  1. Connect to databases using the ODBC Data Source Administrator.
  2. Use the ADO Active-X object to access databases with Active Server Pages.
  3. Apply basic SQL and VBScript commands to build datasets to use in web pages.
  4. View, Add, Delete, Edit and Search Databases with Active Server Pages.
Every database has these basic functions; some databases are far more complex than this example, but the fundamental principles are the same. To learn about how to use Active Server Pages to support a database application on the Web, we will develop a simple Access database of contact names and address. Visit the list of contacts to see how this simple database application works.

What Do I Need to Know Before This Class?

To benefit from these pages, one needs to understand how to use the web and how to write hypertext markup language. The simple examples developed here should give one the basic tools to understand other, more sophisticated ASP applications. We also suggest the references at the end of these pages and www.dejanews.com to explore more advanced questions.

What are Active Server Pages?

One can add smarts to web pages using either client side or server side processes. The client side is the customer's browser such as Netscape Navigator or Microsoft Internet Explorer. The server side processes are performed on the hypertext or web server - be it a personal computer or a mainframe computer. Common Gateway Interface (CGI) and perl scripts are server side processes. The variables are collected from the web page and passed via the CGI to the server where it is processed by perl scripts. Javascript (not to be confused with Java) and VBScript are computer languages that typically execute on the client side (i.e. in the browser). Unlike CGI, these scripts are on the same page as HTML. A block of ASP code, some HTML, some more code, etc.

Why use Active Server Pages?

  1. Active Server Pages are browser independent. The browser only sees pure HTML pages; no vendor proprietary programs or extensions are needed for customers to use ASP applications.
  2. ASP is easy to learn.
  3. ASP gives an efficient link to the many databases that comply with the Open Database Connection (ODBC) standard.
  4. ASP hides the code from the customer (and the hacker).

What Does ASP Look Like?

Delimiters are much like HTML:

<% Code %>

By default the code used to write ASPs is VBScript but Javascript (aka Jscript), PERL or C++ can be used. The default language is set in the server's NT operating system registry by the server management software.

For If then Statements:

<% If iPrice=2 then Buy="Yes"%>
or
<% If iPrice=2 then %>

<b>You should buy.</b>
<% Else %>

<b>Don't buy that!</b>
<% End If %>

VBScript is a "lightweight" subset of Visual Basic with limitations imposed for reasons of security, portability, and performance. VBScripts can't read from or write to local drives or make system calls. Microsoft's guide to VBScript is at http://msdn.microsoft.com/scripting/default.htm

What are Objects

Objects are the building blocks of Visual Basic and other object oriented languages.

Objects have:

  • Properties or attributes - are the characteristics of the object
  • Methods - are the tricks the object can do
  • Events - are when the object does its tricks

ASP Objects

ASP has several built in Objects. The five Objects we will learn about here are:

1. Application objects - for managing information for a web application created with ASP. Applications objects are for the application as a whole and start when the web server starts. Application objects are typically defined in the global.asa file.

2. Session objects - for managing information concerning the user's current Web session. Session objects last for the time a user is on the site. Session objects are created when individuals enter the application and continue until the timeout occurs. Session objects can be defined in any file but are typically are defined in the global.asa file

3. Response objects - for sending information to the client or user

4. Request objects - for receiving information from the user

5. Server objects - for providing information about the server.

In addition to these Server-side Objects, ASP has a number of Server-side Components. Components are objects that one must explicitly add to the ASP application. The one we will focusing on is the Database Access Objects (DAO) and ActiveX Data Objects (ADO).

Response and Request Objects

The Response Object has the following Methods:

Response.Write("Hullo World!")
' Short hand
<%= "Hello World" %>
Response.Redirect("new_page.asp")
Response.Cookies("Name") = "1234, etc."
Response.Cookies("Name").Expires = Now()+7 (or date)

Request Methods:

request.form("txtName")
request.cookies("Name")
Request.ServerVariables("SERVER_NAME")

Server Method:

Server.CreateObject("VBObject.Class")

The Response.Write and Request.form are the objects we will use the most.

Databases and ASP

The Internet Information Server (IIS) versions 3.0 and IIS version 4.0 can process active server pages "out of the box." The Personal Web Server (PWS) for Windows 95 and Peer Web Services for Windows NT Workstation require installation of the ASP.EXE before processing active server pages.

The server knows that ASP code is in the file from the ASP extension.

The Active Data Object (ADO), an Active-X object, handles all the data from server to browser. The ADO has various drivers for different databases and can work with any ODBC database. We are going to use Microsoft Access.

ADO talks to the database using Structured Query Language (SQL), a standard language for communicating with relational (tabular) databases.

To see web pages as they are processed, put the server's domain name or IP address and the directory and file name into the location window on the browser.

Setting Up an ODBC Connection

Before we talk about SQL, let's tell ADO about our ODBC connection between the server and the database. We do that with the Data Source Name or DSN.

System DSN

If you have easy access to the server's console then the System DSN is easy to set up.
  • In Settings/Control Panel go to 32bit ODBC icon.
  • Select the SYSTEM DSN tab and hit ADD
  • Select Microsoft Access Driver from the list and select Finish
  • The Data Source Name is Contacts
  • Select a database by hitting select and browsing to the database. Hit OK. The database should not be in the WEBROOT unless customers need to be able to download the database. The database can be on another machine as well. Note: the database cannot be open when setting this up. If the database is sensitive, put it on a machine only reachable by a non-TCP/IP networking protocol.
  • Hit OK and the connection is made.
  • We invoke the System DSN as follows:
    <%
    Set dbConn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    %>

    File DSN

    Often one does not have easy access to the server's console. If the system administrator is busy, you may have trouble getting the DSN entered and changed. In this case, one can use the File DSN like the one at file.dsn. We will use the preset version dsn.asp. We include this asp file in every page that interacts with the database with the code:
    <!--#include file="dsn.asp"-->

    Typical SQL Commands

    The SQL commands that we will be using are:

    SELECT

    - tells ADO what fields to retrieve from which table. For example:

    SELECT * FROM TableName

    WHERE

    - limits what data is selected. An asterix means all elements (columns) in the database.
    SELECT * FROM TableName WHERE FieldName = 'Value'

    ORDER BY

    - sorts what is returned.

    SELECT * FROM TableName WHERE FieldName > 50 or FieldName < 100 ORDER BY FieldName2, FieldName3

    INSERT INTO

    - adds a new record to the table.

    INSERT INTO TableName (FieldName1, FieldName2) VALUES ('Value1', 'Value2')

    DELETE FROM

    - deletes records from the table.

    DELETE FROM TableName WHERE FieldName = 'Value'

    UPDATE

    - changes the values of particular fields of the table

    UPDATE TableName SET FieldName = 'New Value' WHERE FieldName2 = 'Value2'
    UPDATE ComicCollection SET StreetValue = StreetValue + 10 WHERE Title = 'X-men'

    LIKE

    - used to search through records

    SELECT * FROM TableName Where FieldName LIKE '%%Value%%'


    Wild Card Characters!

    The % (percent sign) indicates there can be characters before or after the value.

    Active Data Objects

    Thanks to the ODBC connection, the web server knows the database is there. Now we need to tell what to do with the data. This is where the ADO and SQL work together.

    Using ADO to create an Object

    We will use Active Data Objects or ADO to create data objects the server can use. We use ADO to identify the database and the ODBC connection to use and what SQL command to use. We create the object, establish a connection to a database, define a SQL command and then execute the SQL command. By starting with the SQL Command first; the rest of the page will follow from it.

    This creates a record set which is then used to create the HTML page. A record set is like a temporary table that stores what is requested through the SQL command.

    Listing the Data

    Look at list.asp to see the file being created.

    At the very top of ASP file (before the HTML tag), create a server object:

    <%
    Set conn = Server.CreateObject("ADODB.Connection")

    %>

    Next we tell the Object conn which database to use. The ODBC connection must be created beforehand.

    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open ("DSN=Contacts;")

    %>

    Write the SQL Command to be used:

    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open ("DSN=Contacts;")
    SQL = "SELECT * FROM Contacts ORDER BY Name"

    %>

    Finally, tell the Object conn to use that SQL command and create a Record Set:


    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    SQL = "SELECT * FROM Contacts ORDER BY Name"
    Set RS = conn.execute(SQL)

    %>

    Displaying the Data

    Now the Record Set is created, we display the data with a loop in the body of the ASP file list.asp. The Do While loop moves record by record through the Record Set.

    <body>
    Title <p>
    <ul>
    <% Do While NOT RS.EOF %>

    <li> Name <br>
    <% RS.movenext
    Loop %>

    </body>

    Use RS("fieldname") to access field data for each Record in the Record Set and write it to the HTML page:

    <body>
    Title <p>
    <ul>
    <% Do While NOT RS.EOF %>
    <li><a href="viewlist.asp?ContactID=<%= rs ("ContactID")%>"><%= rs("Name")%></a><br>
    <% RS.movenext
    Loop %>
    </ul>
    </body>

    Retrieving a Particular Record

    Next we want to create in list.asp a list of all the records in our table with links for each record. These links will invoke another ASP file viewlist.asp that will display the detailed information about each record. The linked list does basically the same task as our previous example, so we will use similar code.

    The table and database are the same so the first list lines and last line do not change. However, we need to limit the record set to just one record in the table. Therefore, our SQL command will change.

    Select only the fields for this one record from the Contacts table. One distinguishes between records by ContactID. (This is the database's key or index field.) We want to select all the fields from the table Contacts where the value of the field ContactID is the same as the value of the variable ContactID passed along with the URL. So the SQL command for the first record would be "SELECT * FROM Contacts Where ContactID=1". (Do not use single quotes because ContactID is an integer, not a string). ContactID changes when we select a different record.

    The ASP Code for Retrieving a Particular Record

    Instead of writing a new page for each record, we can write a single ASP page viewlist.asp that can be used for any of the records in this database.

    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    SQL = "SELECT * FROM Contacts where ContactID=" & request("ContactID")

    Set RS = conn.execute(SQL)
    %>

    When this file is called, the key field ContactID is passed along in the URL in the browser's location box. This requests the value of the variable ContactID. The record set is made of information from the record where the variable ContactID equals the contents of the database field ContactID.

    Retrieving a Particular Record (continued)

    Now we want to display the record set for ContactID with just the information we need. Because we display only one record, viewlist.asp does not need to loop through the record set. Before we write the data, we design the body of the web page viewlist.asp to look like we want it to look.

    <body>
    <font size="+3" face="arial">Name</font><hr> <p>
    Name<br>
    Address<br>
    City, State Zip<p>
    <hr><p>
    List Contacts<br>
    </body>

    We put ASP code in viewlist.asp wherever we want data to appear:

    <body>
    <font size="+3" face="arial"><%=rs("Name")%></font><hr> <p>
    <%=rs("Name")%>
    <br>
    <%=rs("Address")%><
    br>
    <%=rs("City")%>, <%=rs("State") & " " & rs("Zip")%>
    <p>
    <hr><p>
    <A href="list.asp">List Contacts</a><br>
    </body>

    This same file is viewlist.asp used for all the links. Just the SQL command will change, causing a unique Record Set for each ContactID.

    Adding, deleting and editing records

    The links for searching, adding, deleting and editing pages should be located at the bottom of the page that displays individual record information. Each of these processes is going to have a separate page. They will all be Active Sever Pages so we will name them add.html, search.html, edit.asp, and delete.asp. The URL to links to add.html and search.html are nothing unexpected. With edit and delete though there is one record that we want to delete or edit. One way to do it is to put the links on the bottom of the page labeled "Update this Contact" and "Delete this Contact". By doing this we can use the current record's ContactID to let the ASPs know which record to affect. The code at the foot of viewlist.asp would be:

    <A href="add.html">Add a Contact</a><br>
    <a href="search.html">Search Contacts</a><br>
    <A href="edit.asp?ContactID=<%=rs("ContactID")%>">Update this Contact</a><br>
    <A href="delete.asp?ContactID=<%=rs("ContactID")%>">Delete this Contact</a><br>

    Adding Records

    We will create the Add page with HTML forms to enter information through the web. First create a form tag in the body. The data is submitted to another page called AddSubmit.asp with a method of Post. Next determine what fields to submit, in this case the text fields: Name, Address, City, State, Zip Code. Note we include hidden forms to capture information such as date submitted. We end the form with the submit button.

    <body>
    <form action="AddSubmit.asp" method="POST">
    Name: <input type="Text" name="txtName"size="20"><br>
    Address: <input type="Text" name="txtAddress" size="20"><br>
    City: <input type="Text" name="txtCity" size="20"><br>
    State: <input type="Text" name="txtState" size="20"><br>
    Zip Code: <input type="Text" name="txtZip" size="20"><br>
    <input type="Submit" name="" value="Add">

    </form>
    </body>

    Note that there is no VBScript code in this file so save Add.HTML with a file extension of .html instead of .asp. If we include a hidden field to capture the Date (<input type="hidden" name="txtDate" value="<%> =now() %>">) then this would have to be an asp file. Do this as a class exercise.

    Putting the New Record into the Database

    Now, create the page AddSubmit.asp that puts the data we collected into a Database. First we define the SQL command. It doesn't really matter where the SQL command is defined as long as it is before the ADO tries to use the SQL command. However, the SQL statement is the key to the page so we suggest beginning with it.

    The SQL command we will use is the INSERT. It has the format:

    INSERT INTO TableName (FieldName1, FieldName2) VALUES ('Value1', 'Value2')

    Specifically for this example:

    INSERT INTO Contacts (Name, Address, City, State, Zip) VALUES ('Value1', 'Value2', 'Value3', 'Value4', 'Value5')

    Collecting the Data

    We will use the request.form method to get the Values into our SQL command. The SQL command must be on one continuous string or line. Therefore, we will use the VB Concatenation string &_

    <%
    SQL="INSERT INTO Contacts (Name, Address, City, State, Zip) Values (" &_
    "'" & request.form("txtName") & "', " &_
    "'" & request.form("txtAddress") & "', " &_
    "'" & request.form("txtCity") & "', " &_
    "'" & request.form("txtState") & "', " &_
    "'" & request.form("txtZip") & "')"

    %> The SQL command in AddSubmit.asp is the same as the one created before, but now it is broken up with request.form to accept different values.

    Updating the Data

    The Next three lines in AddSubmit.asp are identical to those used in the previous example. An ADO created Object conn.execute(SQL) executes the SQL command.

    <%
    SQL="INSERT INTO Contacts (Name, Address, City, State, Zip) Values (" &_
    "'" & request.form("txtName") & "', " &_
    "'" & request.form("txtAddress") & "', " &_
    "'" & request.form("txtCity") & "', " &_
    "'" & request.form("txtState") & "', " &_
    "'" & request.form("txtZip") & "')"
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    Set RS = conn.execute(SQL)

    %>

    Giving the User a Pat on the Back

    If the code is correct, the data will be entered in the database. Next we let the user know that the update is done. One way to do this is to add a Success page after the ASP code. Once the ASP has executed, the HTML page will be shown. Another option is AddSubmit.asp to end with a response.redirect tag to send users to another page. This would be done as so:

    <%
    SQL="INSERT INTO Contacts (Name, Address, City, State, Zip) Values (" &_
    "'" & request.form("txtName") & "', " &_
    "'" & request.form("txtAddress") & "', " &_
    "'" & request.form("txtCity") & "', " &_
    "'" & request.form("txtState") & "', " &_
    "'" & request.form("txtZip") & "')"
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    Set RS = conn.execute(SQL)
    response.redirect "list.asp"

    %>

    Do not use the response.redirect tag after executing a response.write tag. The latter writes a partial HTML page while the former tries to move to a new page, causing an error.

    Editing a Record

    Editing a record combines the previous list processes. First, in Edit.asp we display the information that has been entered (like in the first example). Then, we want to change the data with forms (like the second example). So first we write the ASP code Edit.asp to retrieve the data. This is the same code used in list.asp for the first example.

    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    SQL = "SELECT * FROM Contacts Where ContactID=" & request("ContactID")
    Set RS = conn.execute(SQL)

    %>

    Now we have a record set for the one record that we want to edit.

    Displaying the Record to Be Edited

    Next we put the data into a form so that it can be changed. We copy the form from the second example but make a few changes. The form action points to a new asp file called EditSubmit.asp. We also pass the ContactID so that the server knows which file to change. Also, we assign values to all the form fields that are the values of the corresponding Field in the Contacts Table.

    <body>
    <form action="EditSubmit.asp?ContactID=<%RS("ContactID")%>" method="POST">

    Name: <input type="Text" name="txtName"size="20" value="<%= rs("Name") %>">
    <br>
    Address: <input type="Text" name="txtAddress" size="20" value="<%= rs("Address") %>">>
    <br>
    City: <input type="Text" name="txtCity" size="20" value="<%= rs("City") %>">> <br>
    State: <input type="Text" name="txtState" size="20" value="<%= rs("State") %>">>
    <br>
    Zip Code: <input type="Text" name="txtZip" size="20" value="<%= rs("Zip") %>">> <br>
    <input type="Submit" name="" value="Add">
    </form>

    </body>

    Updating the Record

    Now we will use the data we collected in the form. In EditSubmit.asp we write over the each field, regardless if that field was changed, with the UPDATE SQL Command. The general format of the UPDATE command is:

    UPDATE TableName SET FieldName = 'New Value' WHERE FieldName2 = 'Value2'

    For this exercise, the SQL Command is:

    UPDATE Contacts Set Name = 'Value1', Address= 'Value2', City= 'Value3', State= 'Value4', Zip= 'Value5' WHERE ContactID=Value6

    Value6 is not enclosed in single quotes because it is an integer, not a string.

    Replacing the Data


    Once again we use in EditSubmit.asp the request.form method to replace the data with the information submitted via form. This must be on one line, but for readability's sake we use concatenation. The ASP code is:

    <%
    SQL = "UPDATE Contacts SET " &_
    "Name='" & request.form("txtName") & "', " &_


    "Address='" & request.form("txtAddress") & "', " &_
    "City='" & request.form("txtCity") & "', " &_
    "State='" & request.form("txtState") & "', " &_
    "Zip='" & request.form("txtZip") & "' " &_

    "WHERE ContactID=" & request("ContactID")
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    Set RS = conn.execute(SQL)

    response.redirect "viewlist.asp?ContactID=" & request("ContactID")
    %>

    Deleting Records

    In delete.asp we delete records using the DELETE SQL command. First, we write out the SQL command. If we want to delete a particular record, use the WHERE command to specify which record. By using a record's unique ContactID we ensure that we delete only that record.

    DELETE FROM Contacts WHERE ContactID = 'Value'

    In this example:

    <%
    SQL = "DELETE FROM Contacts Where ContactID=" & request("ContactID")
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    Set RS = conn.execute(SQL)
    response.redirect "list.asp"

    %>

    The rest of the code in delete.asp is the same before, though we redirect this webpage to list.asp after execution.

    Note that delete.asp deletes a record as soon as it executes. For student exercise, write a confirmation page to ask the user if she actually wants to go through with the delete.

    Searching the Database

    Searching the database is done with the LIKE SQL Command. Before we write the ASP to update the database, we need to identify the search criteria in a form. The form in search.html selects the field or fields to search and what string or strings to search for. In this example, we use a drop down form to determine what to search for and a textbox so users can input a search string. The values of the Drop Down form are the Names of the Fields in the Database. In our example, the search page search.html will look something like this:

    <form action="SearchSubmit.asp" method="POST">
    <select name="txtField">
    <option value="Name">Name
    <option value="Address">Address
    <option value="City">City
    <option value="State">State
    <option value="Zip">Zip
    </select>
    <input type="Text" name="txtSearch" size="20"><p>
    <input type="Submit" name="" value="Search">
    </form>

    Making the Search Form Work

    Once the search form is written, we write the ASP code that makes it work. The values are passed to the file SearchSubmit.asp. First, we figure out what SQL Command to use. In this case we use the LIKE Command. LIKE is similar to WHERE but allows greater flexibility.

    SELECT * FROM Contacts Where FieldName LIKE '%%Value%%'

    In SearchSubmit.asp we want the FieldName to be request.form("txtField") i.e. whatever is selected from the drop down box and the Value request.form("txtSearch") to be whatever is entered in the text box. The other three lines in SearchSubmit.asp are like the same as the first example.

    <%
    SQL = "SELECT * FROM Contacts Where " & request.form("txtField") & " LIKE '%%" & request.form("txtSearch") & "%%'"

    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("DSN=Contacts;")
    Set RS = conn.execute(SQL)

    %>

    Displaying the Search Results

    We have a record set ready to be output to HTML but we are not sure how many records are in the set. Therefore, we loop through the record set in SearchSubmit.asp just like we did before, with list.asp. As before, we will link to viewlist.asp to display the detailed record:

    <%
    Do While NOT RS.EOF
    %>
    <li> <a href="viewlist.asp?ContactID=<%=RS("ContactID")%>">
    <%=RS("Name")%></a><br>
    <%
    RS.Movenext
    loop
    %>

    This will output the Name of the Person ContactID who matches the search value for along with a link to that person's entire record. To show the field that was searched for, in SearchSubmit.asp we add a few if then statements.

    <%
    Do While NOT RS.EOF
    %>
    <li> <a href="viewlist.asp?ContactID=<%=RS("ContactID")%>">
    <%=RS("Name")%></a><br>
    <% If request.form("txtField")="Address" then response.write RS("Address") & "<br>"%>
    <% If request.form("txtField")="City" or request.form("txtField")="State" then %>
    <% response.write RS("City")%>, <% response.write RS("State")%><br>
    <% end if %>
    <% If request.form("txtField")="Zip" then response.write RS("Zip") & "<br>"%>
    <hr width="200" align="left"><br>

    <%
    RS.Movenext
    loop
    %>

    Words of Wisdom

    Your .asp documents must be in a directory that permits execution of files. If you are running IIS on NT4.0:
    1. From the Start manu select Microsoft Internet Server, then Internet Service Manager. Wait for the various services to display and then right-click on the WWW service and click on Service Properties...
    2. Click on the Directories tab to display a list of web directories.
    3. Select the directory that contains your .asp document and then click Edit Properties... At the bottom of the Dialog box place a check in the Execute checkbox.
    4. OK or close out of all windows and try viewing the .asp document again.

    See Troubleshooting Active Server Pages at http://www.indio.com/asp/trouble.htm

    If we try to submit a word with a single quote in it, the ASP will not work. One work around is to change all single quotes to another character. More...

    IIS 4.0 looks for the global.asa in the root directory first, then in the directory where the application resides. If an application breaks, check the root directory for an incompatible global.asa file.

    Use buffer if you want a response.redirect tag after executing a response.write tag. The latter writes a partial HTML page while the former tries to move to a new page, causing an error.

    References

    Sites

    ASP Technology Feature Overview http://www.microsoft.com/workshop/server/asp/aspfeat.asp

    The Active Server BBS, http://www.activexserver.com

    The ASP Developer's Notebook, http://www.aspdeveloper.net

    The ASP Developer's Site, http://www.genusa.com/asp

    Microsoft NT Windows Web Appllication News at http://www.microsoft.com/ntserver/web/news/default.asp

    ASP You Can Grasp: http://www.microsoft.com/sitebuilder/features/aspover.asp

    Microsoft's Internet Information Server Site, http://www.microsoft.com/iis

    Microsoft's Web Scripting Page is at http://msdn.microsoft.com/scripting/default.htm

    Search Results for active server pages

    ASP Technology Feature Overview 200K MS Word document

    Recommended Books

    Hatfield, Bill Active Server Pages for Dummies, IDG Books, ISBN 0-7645-0190-9. Includes CD with the examples used in the text.

    Hillier, Scot and Daniel Mezick, Programming Active Server Pages, Microsoft Press, ISBN 1-57231-700-0.

    Honeycutt, Jerry, VBScript by Example. QUE, ISBN 0-7897-0815-9. Includes CD with the examples used in the text. . It helps to know some VB to start up.

    Johnson, Scott, Using Active Server Pages, QUE, ISBN 0-7897-1389-6

    Miller, Spencer, Vincent, and Evans. "Inside Microsoft Visual InterDev", Microsoft Press. Quite good , but not for beginners.

    Martiner. "Visual Basic Programmer's Guide to Web Development", Wiley. It helps to know some VB to start up.

    Van Hoozer, L. Michael. "Teach yourself Microsoft Visual InterDev in 21 days", SAMS.

    Wesley, Dan. "Build your own Microsoft Visual InterDev Web Applications", Coriolis Group. A how-to book with seven or eight excellent projects.


    This page has been accessed times since its creation.

    Please send your comments on this page to Walt Houser .

    VA Home Page / Site Map / HyperFAQ / Privacy & Security Statement / Disclaimer / FOIA / Contact the VA

    The page was last updated on 03 July 2001 .  Please send your technical and accessibility comments on this page to the OI&T Webmaster.  Before you email VA, please read the VA Privacy Policy on Information Collected from E-mails and Web Forms. 

    Accessibility Help and Information on Section 508.