I'm working on a c# application that accesses an Indexing Service
through a System.Data.OleDb.OleDbConnection and MSIDXS.
Users will have the option to set up an Indexing Service either on the
same machine as this application or on a remote server. There are no
errors if I use:
connection.ConnectionString = "Provider=MSIDXS;Data Source=Catalog"
with the query:
SELECT PATH FROM SCOPE('DEEP TRAVERSAL OF "\Catalog\path" ') WHERE
CONTAINS(Contents, '"test"')
however, the following:
connection.ConnectionString = "Provider=MSIDXS;"
with the query:
SELECT PATH FROM "localhost"."Catalog"..SCOPE('DEEP TRAVERSAL OF
"\Catalog\path" ') WHERE CONTAINS(Contents, '"test"')
throws an exception with this message:
System.Web.Services.Protocols.SoapException: Server was unable to
process request. ---> System.Data.OleDb.OleDbException: Invalid
catalog name 'Catalog'. SQLSTATE=42000
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult
(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&
executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior
behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal
(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior
behavior)
at
System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader()
------------------
I need to use this format so that users can specify a remote machine
in place of "localhost". Is "localhost" the wrong string to use for
my local machine, or is it something else? I'm confident I've given
"Everyone" sufficient permissions to access the catalog.
I'd appreciate any help you can offer.
Thanks,
Daniel Sheiner