【发布时间】:2010-09-26 21:43:50
【问题描述】:
我在 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 驱动程序管理器] 数据 未找到源名称且没有默认值 指定驱动程序
我什至尝试创建一个新的系统 DSN,默认数据库指向 TestDB。还是不开心。
我确定我在做一些简单而愚蠢的事情。感谢您提供任何帮助。
【问题讨论】:
-
看起来它没有找到名为“MySystemDsn”的系统 dsn。在管理工具下打开 ODBC 管理器。检查标有“系统 DSN”的标签。
-
不,绝对不是。访问 ProdDB 数据库的页面工作正常,它们使用相同的 DSN。
-
代码中唯一改变的是 dbName。
标签: sql-server asp-classic dsn