Use this step-by-step guide to create a customized Index Server search page by using Active Server Pages (ASP) in FrontPage 2000.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
Step 1 - Prepare to Use the ASP Features in FrontPage
Before you can use the ASP features in FrontPage 2000, install the components listed in the following Microsoft Knowledge Base article:
312638�
FP: What You Need to Use Active Server Pages (ASP) in FrontPage
Step 2 - Create a Form Page in FrontPage
- In FrontPage, open a Web site on a Windows 2000 Web Server.
- Click the New Page button on the Standard toolbar.
- On the Insert menu, point to Form, and then click One-Line Text Box.
- Double-click the text box. Change the name to QUERYTEXT. For the initial value, type the following:
<%=Request("QUERYTEXT")%>
Click OK. - Click after the text box.
- Add a drop-down menu to the form. To do this, point to Form on the Insert menu, and then click Drop-Down Menu.
- Double-click the drop-down menu and change the name to QUERYFIELD.
- Click Add. For choice, type DocAppName. Clear the Specify Value check box if necessary, and then click OK.
- Repeat step 8 to add the following menu choices:
Characterization
FileName
DocAuthor
DocTitle
- Click OK to close the Properties dialog box.
- Right-click the Submit button and then click Form Properties on the menu that appears.
- Click the Send to other option, and then click Options.
- In the Action box, type the following:
<%=Request.ServerVariables("URL")%>
Click OK. - Save the page and name it IndexServerTest.asp.
Step 3 - Add the Sample ASP Code to the Page
NOTE: You may receive an error message if you copy the examples directly from this article and paste them into FrontPage. The angle brackets (< and >) may appear as escaped HTML code (< and >). To work around this behavior, paste the script into a blank Notepad document, and then copy it from Notepad before you paste it into FrontPage.
- Switch to HTML view.
- Type or paste the following code before the opening <HTML> tag:
<%
' Force variable declaration.
Option Explicit
' Declare all variables.
Dim strQueryText
Dim strQueryField
Dim strSQL
Dim strName
Dim strValue
Dim objRS
Dim objField
' This is the list of index server variables that will appear.
' NOTE: You can customize the list of fields. For more information,
' see Microsoft Knowledge Base article Q288435.
Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle, FileName, Create, Access, Characterization, VPath"
' This is the default index server catalog for all Web content.
' NOTE: For information about how to customize this, see Microsoft
' Knowledge Base article Q288435.
Const strDataSource = "WEB"
' Get the value of the user-submitted search query.
strQueryText = Request("QUERYTEXT")
' Set a default value if the user has not sumitted anything.
If Len(strQueryText) = 0 Then strQueryText = "N/A"
' Get the field the user wants to query against.
strQueryField = Request("QUERYFIELD")
' Set a default value if the user has not specified a field.
If Len(strQueryField) = 0 Then strQueryField = "DocTitle"
%>
- Type or paste the following code after the closing </FORM> tag:
<%
' Build the SQL statement from the user-specified options.
strSQL = "SELECT " & strDisplayFields & " FROM SCOPE() " & _
"WHERE ((" & strQueryField & " LIKE '%" & strQueryText & "%') AND " & _
"((VPath NOT LIKE '%/_vti%') AND (VPath NOT LIKE '%/_private%')))"
' Create a recordset object.
Set objRS = Server.CreateObject("ADODB.Recordset")
' Open the recordset using the SQL string with the index server provider.
objRS.Open strSQL,"PROVIDER=MSIDXS;DATA SOURCE=" & strDataSource
' Are there any records to show?
If objRS.EOF Then
' Show a default message if nothing was found.
Response.Write "No Documents were Found." & vbCrLf
' Otherwise...
Else
' Start a table.
Response.Write "<table border=""1"">" & vbCrLf
' Start the row for the header section.
Response.Write "<tr>" & vbCrLf
' Loop through the fields collection.
For Each objField in objRS.Fields
' Get the field's name.
strName = objField.Name
' If the field has a name, escape it for HTML.
If Len(strName) > 0 Then strName = Server.HTMLEncode(strName)
' Output the field name as a table header.
Response.Write "<th>" & strName & "</th>" & vbCrLf
Next
' End the row for the header section.
Response.Write "</tr>" & vbCrLf
' Loop through all the records.
While Not objRS.EOF
' Start a row in the data section.
Response.Write "<tr>" & vbCrLf
' Loop through the fields collection.
For Each objField in objRS.Fields
' Get the field's value.
strValue = objField.Value
' Check for null values.
If Len(strValue) > 0 Then
' If the value is not null, escape it for HTML.
strValue = Server.HTMLEncode(strValue)
Else
' Otherwise, make it a non-breaking space character.
strValue = " "
End If
' Output the field value as table data.
Response.Write "<td>" & strValue & "</td>" & vbCrLf
Next
' End a row in the data section.
Response.Write "</tr>" & vbCrLf
' Move to the next record.
objRS.MoveNext
Wend
End If
%>
- Switch back to Normal view.
- Save the file.
Step 4 - Test the Sample ASP Page
- In FrontPage, open the sample page.
- Click the Preview in Browser button on the Standard toolbar.
- Type some search criteria in the text box.
- From the drop-down menu, choose the field that you want to query.
- Click Submit.
Any results that match your query appear in a table on the page.
Step 5 - Customize the Sample ASP Page
There are two customization options:
- Changing the Catalog
- Modifying the Field List
To Change the Catalog
If multiple Index Server catalogs are defined on your Web server, you can specify that the sample page use a different catalog. To do this, follow these steps:
- In FrontPage, open the sample page.
- Switch to HTML view.
- Locate the following line of code:
Const strDataSource = "WEB"
- Change the value of strDataSource to the name of your catalog, like this:
Const strDataSource = "MyCustomCatalog"
- Save and close the file.
To Modify the Field List
- In FrontPage, open the sample page.
- Switch to HTML view.
- Locate the line that looks similar to this:
Const strDisplayFields = "Rank, DocAuthor, DocAppName"
- Modify the list of values. Separate each field name with a comma, like this:
Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle"
- Save and close the file.
The following table lists the values you can use for the
strDisplayFields variable.
Field Name Field Type Description
---------------------------------------------------------------------------
Access Date/Time Last time file was accessed.
Characterization Text/String Characterization, or abstract, of
document. Computed by Index Server.
Create Date/Time Time file was created.
Directory Text/String Physical path to the file, not
including the file name.
DocAppName Text/String Name of application that created the
file.
DocAuthor Text/String Author of the document.
DocByteCount Numeric Number of bytes in the document.
DocCategory Text/String Type of document, such as a memo,
schedule, or white paper.
DocCharCount Numeric Number of characters in the document.
DocComments Text/String Comments about the document.
DocCompany Text/String Name of the company for which the
document was written.
DocCreatedTm Date/Time Time document was created.
DocEditTime Date/Time Total time spent editing document.
DocHiddenCount Numeric Number of hidden slides in a
PowerPoint file.
DocKeywords Text/String Document keywords.
DocLastAuthor Text/String Most recent user who edited the
document.
DocLastPrinted Date/Time Time document was last printed.
DocLastSavedTm Date/Time Time document was last saved.
DocLineCount Numeric Number of lines contained in a
document.
DocManager Text/String Name of the manager of the document's
author.
DocNoteCount Numeric Number of pages with notes in a
PowerPoint file.
DocPageCount Numeric Number of pages in th document.
DocParaCount Numeric Number of paragraphs in the document.
DocPartTitles Text/String Names of document parts. For example,
in Microsoft Excel, a spreadsheet is
a document part. In PowerPoint, a
slide is a document part. And, in
Word, the file names of the documents
contained in a master document are
document parts.
DocPresentationTarget Text/String Target format (35mm, printer, video,
and so on) for a PowerPoint
presentation.
DocRevNumber Text/String Current version number of a document.
DocSlideCount Numeric Number of slides in a PowerPoint
file.
DocSubject Text/String Subject of the document.
DocTemplate Text/String Name of the template for the
document.
DocTitle Text/String Title of document.
DocWordCount Numeric Number of words in the document.
FileIndex Numeric Unique ID of the file.
FileName Text/String Name of the file.
HitCount Numeric Number of hits (words matching query)
in the file.
Path Text/String Full physical path to the file,
including file name.
Rank Numeric Rank of row. Ranges from 0 to 1000.
Larger numbers indicate better
matches.
ShortFileName Text/String Short (8.3) file name.
Size Numeric Size of file, in bytes.
VPath Text/String Full virtual path to file, including
file name. If more than one possible
path, then the best match for the
specific query is chosen.
Write Date/Time Last time file was written.
Troubleshooting
- If the Index Service is not running, the following error message appears:
Microsoft OLE DB Provider for Indexing Service error '80041820'
Service is not running.
/IndexServerTest.asp, line 44
To resolve this problem, start the Index Service. - If you specify an invalid catalog, an error message similar to the following appears:
Microsoft OLE DB Provider for Indexing Service error '8004181d'
There is no catalog.
/IndexServerTest.asp, line 44
To resolve this problem, check the value of the strDataSource variable. If it is correct, restart the Index Service.