1

我在 Windows Server 2003 R2 上使用 SQL Server Workgroup Edition

我的经典 ASP 页面使用系统 DSN 访问我的生产数据库。都在这里工作。

像这样的代码...

<%
dbName= "ProdDB"  
userID = "PublicUser"  
pwd = "PublicUserPW"

Set objConn = Server.createObject("ADODB.Connection")  
objConn.connectionString = "DSN=MySystemDSN"  
objConn.open dbName, userID, pwd  
%>  

为了开发和测试,我在 Enterprise Manager 中创建了 ProdDB 的副本

  • 备份 ProdDB
  • 从 ProdDB 备份集恢复到名为 TestDB 的新数据库

我的理解是,恢复的数据库将包含数据的精确副本以及用户、角色等。在 Enterprise Manager 中比较两个数据库似乎支持了这一假设。

所以......我假设我可以使用相同的凭据访问测试副本并且只更改dbName,就像这样......

<%
dbName= "TestDB"  
userID = "PublicUser"  
pwd = "PublicUserPW"

Set objConn = Server.createObject("ADODB.Connection")  
objConn.connectionString = "DSN=MySystemDSN"  
objConn.open dbName, userID, pwd  
%>  

但是,现在我的页面返回

[Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

我什至尝试创建一个新的系统 DSN,默认数据库指向 TestDB。仍然没有喜悦。

我确定我在做一些简单而愚蠢的事情。感激地接受任何帮助。

4

1 回答 1

0

open 方法的文档说它已声明:

connection.Open ConnectionString, UserID, Password, Options

所以看起来你是TestDB作为连接字符串传入的。我通常在不指定任何参数的情况下调用 open。从connectionstrings dot com获取连接字符串,并且:

objConn.ConnectionString = "Data Source=localhost;Initial Catalog=testdb;" & _
    "User Id=myUsername;Password=myPassword;"
objConn.Open
于 2010-09-26T13:43:50.577 回答