<HTML>
   <%
   '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '% File:    ADOselect.asp
   '% Author:    Aaron L. Barth (MS)
   '% Purpose:    For testing ADO connectivity to any ODBC Datasource
   '% Disclaimer:    This code is to be used for sample purposes only
   '%              Microsoft does not guarantee its functionality
   '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   if Request("REQUESTTYPE") <> "POST" then
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % If the request does not contain REQUESTTYPE = "POST
   '   % then display Form Page
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      dsn = Session("dsn")
      dbuser = Session("dbuser")
      dbpass = Session("dbpass")
      dbtable = Session("dbtable")
      dbfield = Session("dbfield")
      dbwhere = Session("dbwhere")
   %>
   <FORM ACTION=adoselect.asp method=POST>
   <TABLE>
   <TR><TD><B>You are authenticated as: </TD>
      <TD><FONT COLOR=GREEN><% =
         Request.ServerVariables("LOGON_USER")%></TD></TR>
   <TR><TD><B>Your IP Address is: </TD>
      <TD><FONT COLOR=GREEN><% =
         Request.ServerVariables("REMOTE_ADDR")%></TD></TR>
   <TR><TD><B>System DSN:</TD>
      <TD><INPUT TYPE=TEXT NAME=datasource VALUE="<% = dsn %>"></TD></TR>
   <TR><TD><B>Username:</TD>
      <TD><INPUT TYPE=TEXT NAME=username VALUE="<% = dbuser %>"></TD></TR>
   <TR><TD><B>Password:</TD>
      <TD><INPUT TYPE=Password NAME=password VALUE="<% = dbpass
         %>"></TD></TR>
   <TR><TD><B>Table:</TD>
      <TD><INPUT TYPE=TEXT NAME=table VALUE="<% = dbtable %>"></TD></TR>
   <TR><TD><B><FONT COLOR=RED>WHERE</TD>
      <TD></TD></TR>
   <TR><TD><B>Field to Query:</TD>
      <TD><INPUT TYPE=TEXT NAME=field VALUE="<% = dbfield %>"></TD></TR>
   <TR><TD><B>Value to Query:</TD>
      <TD><INPUT TYPE=TEXT NAME=where VALUE="<% = dbwhere %>"></TD></TR>
     </TABLE>
     <INPUT TYPE=HIDDEN NAME=REQUESTTYPE VALUE="POST">
     <INPUT TYPE=Submit VALUE="Query Database">
     <HR>
     </FORM>
   <%
   else
   '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '% Perform Query to Database
   '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % Request the datsource  from the Previous Form
   '   % Set the Session variable so we can retrieve the
   '   % value for the next query
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      dsn  = Request("datasource")
      Session("dsn") = dsn
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % Request the username  from the Previous Form
   '   % Set the Session variable so we can retrieve the
   '   % value for the next query
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      dbuser  = Request("username")
      Session("dbuser") = dbuser
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % Request the password from the Previous Form
   '   % Set the Session variable so we can retrieve the
   '   % value for the next query
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      dbpass = Request("password")
      Session("dbpass") = dbpass
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % Request the table from the Previous Form
   '   % Set the Session variable so we can retrieve the
   '   % value for the next query
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      dbtable = Request("table")
      Session("dbtable") = dbtable
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % Request the table from the Previous Form
   '   % Set the Session variable so we can retrieve the
   '   % value for the next query
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      dbfield = Request("field")
      Session("dbfield") = dbfield
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % Request the table from the Previous Form
   '   % Set the Session variable so we can retrieve the
   '   % value for the next query
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      dbwhere = Request("where")
      Session("dbwhere") = dbwhere
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '   % Check to see if any of the requested values are blank, IF they
   '   % are, then inform the user which variables are blank ELSE
   '   % Continue with the query
   '   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      if dsn = "" OR dbuser = "" OR dbtable = "" then
         Response.write "Error in SQL Statement:<BR>"
         if dsn = "" then
            Response.write "<FONT COLOR=RED>Missing System DSN</FONT><P>"
         end if
         if dbuser = "" then
            Response.write "<FONT COLOR=RED>Missing Username</FONT><P>"
         end if
         if dbtable = "" then
            Response.write "<FONT COLOR=RED>Missing Tablename</FONT><P>"
         end if
            Response.write "<FORM ACTION=adoselect.asp><INPUT TYPE=SUBMIT
               VALUE=ReQuery></FORM>"
       else
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '      % Create the Conn Object and open it
   '      % with the supplied parameters
   '      % System DSN, UserID, Password
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
         Set Conn = Server.CreateObject("ADODB.Connection")
         Set rs = Server.CreateObject("ADODB.RecordSet")
         Conn.Open dsn, dbuser, dbpass
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '      % Build the SQL Statement and assign it
   '      % to the variable sql.  Concatinating the dbtable and the SELECT
   '      % statement
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
         if dbfield = "" OR dbwhere ="" then
         sql="SELECT * FROM " & dbtable
         else
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '      % IF dbfield and dbwhere are specified, then
   '      % change the SQL statement to use the WHERE clause
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '
         sql="SELECT * FROM " & dbtable
         sql = sql & " WHERE " & dbfield
         sql = sql & " LIKE '%" & dbwhere & "%'"
         end if
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '      % For Debugging, Echo the SQL Statement
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
         Response.Write "<B><FONT SIZE=2 COLOR=BLUE>SQL STATEMENT: </B>" &
           sql & "<HR>"
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '      % Open the RecordSet (RS) and pass it
   '      % the connection (conn) and the SQL Statement (sql)
   '      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
         RS.Open sql, Conn
         %>
         <P>
         <TABLE BORDER=1>
            <TR>
            <%
   '         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '         % Loop through Fields Names and print out the Field Names
   '         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            For i = 0 to RS.Fields.Count - 1
            %>
            <TD><B><% = RS(i).Name %></B></TD>
            <% Next %>
            </TR>
            <%
   '         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '         % Loop through rows, displaying each field
   '         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            Do While Not RS.EOF
            %>
            <TR>
            <% For i = 0 to RS.Fields.Count - 1 %>
            <TD VALIGN=TOP><% = RS(i) %></TD>
            <% Next %>
            </TR>
            <%
            RS.MoveNext
            Loop
   '         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   '         % Make sure to close the Result Set and the Connection object
   '         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            RS.Close
            Conn.Close
            %>
         </TABLE>
         <%
         end if
      end if
   %>