cancel
Showing results for 
Search instead for 
Did you mean: 

Problems with SA 12.0.1 as Linked Server for a MS SQL Server 2008 R2 raising error 7312

VolkerBarth
Contributor
7,671

We're about to migrate an old MS SQL 2000 server (32-bit) to a MS SQL 2008 R2 server (64-bit). As part of the install, we use the MS Linked Server feature with some SQL Anywhere 12.0.1 (32-bit) databases.

While I remember that setting up Linked Servers in the old server was nasty enough (particulary compared to the according Remote Data Access), we don't get the new system to access our SA tables.

What we have achieved:

  • We deployed a 64-bit custom install (just the ODBC and OLEDB client interfaces and custom resources) to the MS box, using build 12.0.1.3554.
  • We have installed the linked server (with a script, therefore very similar to the one running against the old server).
  • The options are set identically on both servers (except the old one uses a SA 11.0.1.2376 client lib).
  • The linked server itself seems to work, and displaying remote tables and catalogs does work. The credentials are verified.
  • We have setup MSDTC and tested this with the DTCPing tool.

When using a simple four-part-query like the following:

select * from SVR_SA.MyDb.dbo.MyTable

the following error with error code 7312 is returned (translated from German):

Message 7312, level 16, state 1, row 1
Invalid use of schema and/or catalog for OLE DB provider 'SAOLEDB.12'. A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog and/or schema.

So how can I make the provider expose the desired interfaces?

Accepted Solutions (1)

Accepted Solutions (1)

VolkerBarth
Contributor

Sigh.

One should never forget to set the "AllowInProcess" option. Now it works.

I should've read the docs better - though this is definetely different between MS SQL 2000 and newer versions:

Choose the Allow Inprocess provider option.

The technique for doing this varies with different versions of Microsoft SQL Server. In SQL Server 2000, there is a Provider Options button that takes you to the page where you can choose this option. For SQL Server 2005, right-click the SAOLEDB.12 provider under Linked Servers » Providers and choose Properties. Make sure the Allow Inprocess checkbox is selected. If the Inprocess option is not selected, queries fail.

Oh, yes, and how nicely they fail:)

Answers (0)