我在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副本我的理解是,恢复的数据库将包含数据的精确副本以及用户,角色等。比较企业管理器中的两个数据库似乎支持这一假设。
所以...我假设我可以使用相同的凭据访问测试副本,只更改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。仍然没有快乐。
我确信我做的事情简单而愚蠢。感谢任何帮助。
答案 0 :(得分:0)
open method的文档说它已声明:
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