FIX: "Cannot Open Database Requested" Error Connecting to Remote SQL Server

This article has been archived. It is offered "as is" and will no longer be updated.
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.
This bug has been fixed in the MDAC version 2.6 Service Pack 1.
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.
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.
More information

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.
  1. On the remote SQL Server, create a database named TEST. A database with this name should not exist on your local SQL Server.
  2. Create a new Microsoft Visual Basic EXE project and paste the following code:
    Sub ReproTestDim conn as ObjectDim rs as ObjectDim sql as String  sql = "select db_name(dbid) from master..sysprocesses where " & _        "spid = @@spid"  set conn = CreateObject("adodb.connection")  conn.Provider = "SQLOLEDB"  conn.Properties("Prompt").Value = adPromptAlways  conn.Open  set rs = conn.Execute( sql )  MsgBox "Current database is " & rs.Fields(0).Value  rs.Close  conn.CloseEnd Sub					
  3. 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.

Article ID: 283860 - Last Review: 12/05/2015 23:39:39 - Revision: 5.0

Microsoft Data Access Components 2.6

  • kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbfix kbmdac260sp1fix kbprovider KB283860