Microsoft KB Archive/216973

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

Article ID: 216973

Article Last Modified on 12/5/2003

-

APPLIES TO


 * Microsoft Data Access Components 2.0
 * Microsoft Data Access Components 2.1
 * Microsoft Data Access Components 2.5
 * Microsoft Data Access Components 2.6
 * Microsoft Windows NT 4.0

-



This article was previously published under Q216973



SYMPTOMS
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."



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



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



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
 Start a new Microsoft Visual Basic project. Form1 is created by default. 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"  Insert a Command Button on the form. Command1 is created by default.</li>  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") RS.MoveNext Loop RS.Close 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

</li> Press F5 to run your project. Specify the name of your web server when prompted to do so.</li></ol>

<div class="references_section">