Microsoft KB Archive/283860

= FIX: &quot;Cannot Open Database Requested&quot; Error Connecting to Remote SQL Server =

Article ID: 283860

Article Last Modified on 11/30/2007

-

APPLIES TO


 * Microsoft Data Access Components 2.6
 * Microsoft SQL Server 7.0 Standard Edition

-



This article was previously published under Q283860



SYMPTOMS
With the Microsoft OLE DB provider for SQL Server (SQLOLEDB), if you try to access a database on a remote SQL Server that doesn't exist on a local SQL Server, the following error may occur:

Cannot open database requested in login 'database name'. Login fails

This error has been reported when the local computer has Microsoft Data Access Components (MDAC) 2.6, SQL Server 7.0, and Microsoft Windows NT 4.0 Service Pack 6, and the remote computer has SQL Server 7.0. This error does not occur with MDAC 2.6 against a remote SQL Server 2000 server. It also does not occur if the local computer is not running SQL Server.



RESOLUTION
This bug has been fixed in the MDAC version 2.6 Service Pack 1.



WORKAROUND
To work around this error, you can use the SQL Server Client Network utility (Cliconfg.exe) to set up an alias that uses TCP/IP instead of Named Pipes to connect to the server.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft Data Access Components 2.6 Service Pack 1.



Steps to Reproduce Behavior
NOTE: To reproduce the problem, you will need a local computer with Windows NT 4.0, MDAC 2.6, and SQL Server 7.0, and you will also need a remote SQL Server 7.0.  On the remote SQL Server, create a database named TEST. A database with this name should not exist on your local SQL Server.  Create a new Microsoft Visual Basic EXE project and paste the following code: Sub ReproTest Dim conn as Object Dim rs as Object Dim sql as String sql = &quot;select db_name(dbid) from master..sysprocesses where &quot; & _ &quot;spid = @@spid&quot; set conn = CreateObject(&quot;adodb.connection&quot;) conn.Provider = &quot;SQLOLEDB&quot; conn.Properties(&quot;Prompt&quot;).Value = adPromptAlways conn.Open set rs = conn.Execute( sql ) MsgBox &quot;Current database is &quot; & rs.Fields(0).Value rs.Close conn.Close End Sub  Run the code and when prompted, specify the remote server name, user ID, and password. Click Options and select the TEST database on the remote server.

Keywords: kbqfe kbhotfixserver kbbug kbfix kbmdac260sp1fix kbprovider KB283860

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.