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.

PRB: "Errors Occurred" upon Accessing Index Server 2.0 via RDS

View products that this article applies to.

This article was previously published under Q216973

↑ Back to the top


Running a Visual Basic application using the Microsoft RDS Data Factory to access Index Server 2.0 can generate the following errors:
Run-time error '-2147217887 80040e21':
"Errors Occurred."

↑ Back to the top


This happens when Running Index Server 2.0 on Windows NT 4.0 with service pack 3.0 (or an older service pack).

↑ Back to the top


To resolve this run Index Server 2.0 with Windows NT 4.0 Service Pack 4 (or beyond).

↑ Back to the top

More information

Index Server 2.0 was shipped (with Windows NT Option Pack 4) before the MDAC 2.0 release. As a result, Index Server 2.0 was not tested with MDAC 2.0 components when it was released. The release of Service Pack 4 for Windows NT 4.0 included some modifications that corrected the way Index Server 2.0 works with RDS 2.0 components (or later versions).

Steps to Reproduce Behavior

  1. Start a new Microsoft Visual Basic project. Form1 is created by default.
  2. Reference the following libraries from the Project/Reference menu:
    • "Microsoft ActiveX Data Objects 2.0 (or 2.1) library"
    • "Microsoft Remote Data Services 2.0 (or 2.1) library"
  3. Insert a Command Button on the form. Command1 is created by default.
  4. Insert the following code into the General Declaration section of Form1:
    Option Explicit
    Dim RS As ADODB.Recordset
    Private Sub DoQuery(HTTPServer As String)
        Dim Scope, QueryText, sSQL As String
        Scope = "C:\"                   ' Set the scope of the query
        QueryText = "Index"      ' Set the criteria of the query
        sSQL = "SELECT Filename, Path, Size, Write FROM Scope('" + Chr(34) + _
             Scope + Chr(34) + "') WHERE CONTAINS('" + Chr(34) + QueryText + _
             Chr(34) + "') > 0" ' ORDER BY Rank DESC"
        ' Create the recordset via the data-factory
        Data_Factory HTTPServer, sSQL
        ' Print out column titles
        Debug.Print "Filename", "Path", "Size", "Write"
        Debug.Print "-------------", "------", "------", "----------"
        ' Print out data
       Do Until RS.EOF
            Debug.Print RS("Filename"), RS("Path"), RS("Size"), RS("Write")
        Set RS = Nothing
    End Sub
    Private Sub Command1_Click()
        Dim HTTPServer As String
        Dim WebServer As String
        WebServer = InputBox("What is the name of your Web (IIS) Server?")
        HTTPServer = WebServer
        ' Execute the query
        DoQuery (HTTPServer)
    End Sub
    Public Sub Data_Factory(HTTPServer As String, sSQL As String)
        Dim DS As New RDS.DataSpace
        Dim DF As Object
        Set DF = DS.CreateObject("RDSServer.DataFactory", "http://" & HTTPServer)
        'next line produces error (not recognizing the provider) with NT4 SP3 or before
        Set RS = DF.Query("Provider=msidxs", sSQL, adOpenDynamic)
    End Sub
  5. Press F5 to run your project. Specify the name of your web server when prompted to do so.

↑ Back to the top

Keywords: KB216973, kbprb, kbdatabase

↑ Back to the top

Article Info
Article ID : 216973
Revision : 5
Created on : 12/5/2003
Published on : 12/5/2003
Exists online : False
Views : 455