Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

How to query Index Server data by using ASP in FrontPage 2003


View products that this article applies to.

For a Microsoft FrontPage 2000 version of this article, see 288435 (http://support.microsoft.com/kb/288435/ ) .
For a Microsoft FrontPage 2002 version of this article, see 318387 (http://support.microsoft.com/kb/318387/ ) .
For a Microsoft FrontPage 2000 version of this article, see 288435 (http://support.microsoft.com/kb/288435/ ) .
For a Microsoft FrontPage 2002 version of this article, see 318387 (http://support.microsoft.com/kb/318387/ ) .

↑ Back to the top


Summary

This step-by-step article describes how to create a customized Index Server search page by using Active Server Pages (ASP) in Microsoft Office FrontPage 2003. 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 Microsoft Office FrontPage 2003

Before you can use the ASP features in FrontPage, you must install the components that are listed in the following Microsoft Knowledge Base article:
318287� What you need to use Active Server Pages (ASP) in FrontPage 2002

Step 2: Add a form page in FrontPage

To add a form page in FrontPage, follow these steps:
  1. Start FrontPage, and then open your Web site.
  2. On the File menu, click New, and then click Blank Page.
  3. On the Insert menu, point to Form, and then click Textbox.
  4. Double-click the text box on your Web page.
  5. In the Text Box Properties dialog box, type QUERYTEXT in the Name box.
  6. In the Initial value box, type <%=Request("QUERYTEXT")%>, and then click OK.
  7. Click between the text box that you have added and the Submit button, point to Form on the Insert menu, and then click Drop-Down Box.
  8. Double-click the drop-down box.
  9. In the Drop Down Box Properties dialog box, type QUERYFIELD in the Name box.
  10. Click Add, and then type DocAppName in the Choice box.
  11. Click to clear the Specify Value check box, and then click OK.
  12. Repeat steps 10 and 11 to add the following menu items:
    Characterization
    FileName
    DocAuthor
    DocTitle
  13. Click OK to close the Drop Down Box Properties dialog box.
  14. Right-click the Submit button, and then click Form Properties.
  15. Click Send to other , and then click Options.
  16. In the Action box, type <%=Request.ServerVariables("URL")%>, and then click OK two times.
  17. On the File menu, click Save.
  18. In the File name box, type IndexServerTest.asp, and then click Save.

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 then paste them into FrontPage. FrontPage may misinterpret the angle brackets (< and >). To work around this behavior, paste the script into a blank Notepad document, and then copy it from Notepad and paste it into FrontPage.

To add the sample ASP code to the page, follow these steps:
  1. At the bottom of the right pane, click Code to switch to the HTML view.
  2. Type or paste the following code before the opening HTML tag:
    <%
      ' Force variable declaration.
      Option Explicit
    
      ' Declare all our 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.
      ' You can customize the list of fields. For more information,
      ' see Microsoft Knowledge Base article 318387.
      Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle, FileName, Create, Access, Characterization, VPath"
    
      ' This is the default Index Server catalog for all Web content.
      ' For information about how to customize this, see Microsoft 
      ' Knowledge Base article 318387.
    
      Const strDataSource = "WEB"
    
      ' Get the value of the user-submitted search query.
      strQueryText = Request("QUERYTEXT")
      ' Set a default value if the user has not submitted anything.
      If Len(strQueryText) = 0 Then strQueryText = "%%"
    
      ' Get the field that 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"
    %>
    
  3. Type or paste the following code after the closing </FORM> tag:
    <%
    ' Check if the user has entered a value in the form
    If strQueryText <> "%%" Then
    
      ' 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 by 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 is 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
            ' Look 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 = "&#xa0;"
            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 on to the next record.
          objRS.MoveNext
         Wend
         Response.Write "</table>" & vbCrLf
      End If
    
    Else
    ' User has not entered any value in search form
        Response.Write "Please enter a Search Term before submitting the form" & vbCrLf
    End if%>
    
  4. On the File menu, click Save.

Step 4: Test the sample ASP page

  1. Start FrontPage, and then open the IndexServerTest.asp page.
  2. On the File menu, point to Preview in Browser, and then click the browser that you want to use.
  3. In the text box, type your search criteria. In the list, click the field that you want to query.
  4. 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:
  • Change the catalog
  • Modify the Field list

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:
  1. Start FrontPage, and then open the sample Web page that you created earlier in this article.
  2. Click Code to switch to HTML view.
  3. Locate the following line of code:
    Const strDataSource = "WEB"
  4. Change the value of strDataSource to the name of your catalog, so that the line is similar to the following code: Const strDataSource = My_Custom_Catalog
  5. On the File menu, click Save, and then close the file.

Modify the Field list

  1. Start FrontPage, and then open the sample Web page that you created earlier in this article.
  2. Click Code to switch to HTML view.
  3. Locate the line of code that looks similar to the following code:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName"
    					
    
  4. Change the list of values. Separate each field name with a comma, so that the line is similar to the following:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle"
  5. On the File menu, click Save, and then close the file.
The following table lists the values that you can use for the strDisplayFields variable.
Collapse this tableExpand this table
Field NameField TypeDescription
AccessDate/TimeLast time when the file was accessed.
CharacterizationText/StringCharacterization, or abstract, of document. Computed by Index Server.
CreateDate/TimeTime when the file was created.
DirectoryText/StringPhysical path of the file, not including the file name.
DocAppNameText/StringName of the application that created the file.
DocAuthor Text/StringAuthor of the document.
DocByteCountNumericNumber of bytes in the document.
DocCategoryText/StringType of document, such as a memo, schedule, or white paper.
DocCharCount NumericNumber of characters in the document.
DocCommentsText/StringComments about the document.
DocCompanyText/StringName of the company that the document was written for.
DocCreatedTmDate/TimeTime when the document was created.
DocEditTimeDate/TimeTotal time spent editing the document.
DocHiddenCountNumericNumber of hidden slides in a Microsoft PowerPoint presentation.
DocKeywordsText/StringDocument keywords.
DocLastAuthorText/StringMost recent user who edited the document.
DocLastPrintedDate/TimeTime document was last printed.
DocLastSavedTmDate/Time Time document was last saved.
DocLineCountNumericNumber of lines contained in a document.
DocManagerText/StringName of the manager of the document's author.
DocNoteCountNumericNumber of pages with notes in a PowerPoint presentation.
DocPageCountNumericNumber of pages in th document.
DocParaCountNumericNumber of paragraphs in the document.
DocPartTitlesText/StringNames 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.
DocPresentationTargetText/StringTarget format (such as 35mm, printer, video) for a PowerPoint presentation.
DocRevNumberText/StringCurrent version number of a document.
DocSlideCountNumericNumber of slides in a PowerPoint presentation.
DocSubjectText/StringSubject of the document.
DocTemplateText/StringName of the template for the document.
DocTitleText/StringTitle of document.
DocWordCountNumericNumber of words in the document.
FileIndexNumericUnique ID of the file.
FileNameText/StringName of the file.
HitCountNumericNumber of hits (words matching query) in the file.
PathText/StringFull physical path of the file, including file name.
RankNumericRank of row. Ranges from 0 to 1000. Larger numbers indicate better matches.
ShortFileNameText/StringShort (8.3) file name.
SizeNumericSize of file, in bytes.
VPathText/StringFull virtual path of file, including file name. If more than one possible path, the best match for the specific query is chosen.
WriteDate/TimeLast time when the file was written.

Troubleshooting

  • If the Index Service is not running, you receive the following error message:
    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 a catalog that is not valid, you receive an error message that is similar to the following:
    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.

↑ Back to the top


References

For more information about how to work with the Microsoft Windows 2000 Indexing Service, click the following article numbers to view the articles in the Microsoft Knowledge Base:
185985� Using Index Server to query and display META TAG information
256276� Error message: There is no catalog
229282� ASP code is visible when you view source of an Index Server results page

↑ Back to the top


Keywords: KB825487, kbhowtomaster, kbasp, kbquery

↑ Back to the top

Article Info
Article ID : 825487
Revision : 7
Created on : 12/3/2007
Published on : 12/3/2007
Exists online : False
Views : 340