Querying The Catalog Via Odbc

Both of these failed:

select top 10 * from mylinkedserver.mydatabase.sysprogress.systables
select top 10 * from mylinkedserver.mydatabase.pub._file

error message for 1st one:
Msg 7356, Level 16, State 1, Line 3
The OLE DB provider "MSDASQL" for linked server "mylinkedserver" supplied inconsistent metadata for a column. The column "TBLTYPE" (compile-time ordinal 5) of object ""mydatabase"."sysprogress"."systables"" was reported to have a "LENGTH" of 1 at compile time and 2 at run time.


error message for 2nd one:

Msg 7356, Level 16, State 1, Line 4
The OLE DB provider "MSDASQL" for linked server "mylinkedserver" supplied inconsistent metadata for a column. The column "_Prime-Index" (compile-time ordinal 2) of object ""mydatabase"."pub"."_file"" was reported to have a "DBTYPE" of 3 at compile time and 20 at run time.


Using 11.6 ODBC driver that comes with QAD2016EE, on a Progress 10.2B DBMS. Server runs RedHat, client runs Windows 7. We have both QAD 2013 and 2016 so I got the most recent Progress ODBC driver from QAD assuming it should connect to data from both OpenEdge 10 and 11.
 
Apparently this is a bug in SQL Server (or the ODBC driver). I found a workaround (that worked for someone getting a similar message accessing SalesForce):

Select * From OpenQuery(mylinkedserver,'select top 10 * from sysprogress.systables')

I got a different error when accessing pub._file using this kind of syntax, but as long as I can query the catalog using the sysprogress views, that will work for me.
 
Top