Consultor Eletrônico



Kbase P41328: SQL errors occur when trying to run a basic select query against a progress table through sql server
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   01/12/2010
Status: Unverified

SYMPTOM(s):

Can not query progress tables through sql server linked server

Getting errors when trying to query progress tables through sql server linked server

Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' reported an error. The provider does not support the necessary method.
[OLE/DB provider returned message: Method is not supported by this provider.]
[OLE/DB provider returned message: [DataDirect-Technologies][ODBC PROGRESS driver]Optional feature not implemented.]
OLE DB error trace [OLE/DB Provider 'MSDASQL' IDBSchemaRowset::GetRowset returned 0x80040e53: The provider does not support the necessary method.].

Using SQL Query Analyzer to query/access tables

Query using linked_server_name.prog_dbname.object_owner.object_name
i.e., select * from TESTME.prog91d.pub.customer

Can view all tables through SQL Server Enterprise Manager under Linked Servers folder

ODBC DSN configured with MERANT 3.60 32-BIT Progress SQL92 v9.1D Driver

Test connection from ODBC DNS works

Linked Server configured to use Microsoft OLE DB Provider for ODBC Driver

FACT(s) (Environment):

Progress 9.1D
Windows
MS SQL 2000

CAUSE:

This is expected behavior based on the query used. Currently Progress' SQL server engine (_SQLSRV2) does not support the request for a limited rowset (IDBSchemaRowset::GetRowset), in other words, a request to return some limited number of rows from a result set.

FIX:

Option #1
Consider a query or combination of queries that will accomplish the effect of limiting the result set. Ideally, it is possible to form a predicate for the query that does this.

Option #2
Use other tools that can access the Progress database tables such as SQL Explorer or WinSQL.