Searching with ADO

You can search the SharePoint Portal Server document store by submitting SQL queries through ActiveX Data Objects (ADO) client applications.

Figure 9: ADO Search Architecture

The preceding figure illustrates the SharePoint Portal Server Search architecture that supports ADO. ADO client applications can create an ADO Command object and populate it with a query written by using SharePoint Portal Server SQL syntax. You must specify the OLE DB provider Data Source Object (DSO) in the connection string to ADO. When it receives a command, ADO calls the Microsoft OLEDB Provider for Internet Publishing (MSDAIPP). MSDAIPP then translates the query into a WebDAV SEARCH request and submits it to the DAV provider running in the Internet Information Services (IIS) process on the SharePoint Portal Server computer.

The DAV provider routes the query to the appropriate components of the Search service and returns the results to MSDAIPP in XML format. MSDAIPP translates the XML results into an OLE DB Rowset that it then passes to ADO. ADO converts the Rowset into an ADO Recordset that is returned to the ADO client application.

There are several advantages to searching with ADO. One advantage is that your search application integrates with existing ADO applications. You can also bind to existing data controls that require ADO. This data access method bypasses the Document Management Object features provided by the client components of SharePoint Portal Server and saves overhead in instantiating the necessary Document Management Objects that bind to the store. You can use ADO for read-only tasks, such as search queries, reading file properties, and enumerating folders. You must use SharePoint Portal Server Document Model Objects for all tasks that modify data, for example, creating or changing properties for workspace, folders, or documents.

Creating a Search Web Part

Search Query Path

Searching with XMLHTTP and WebDAV

SharePoint Portal Server Search SQL Syntax

Using Searchable Document Properties

WebDAV/DASL Request and Response Syntax