Двойная база данных SQL Server на том же сервере недоступна - PullRequest
1 голос
/ 26 сентября 2010

Я использую SQL Server Workgroup Edition на Windows Server 2003 R2

Мои классические страницы ASP получают доступ к моей производственной базе данных, используя системный DSN. Все здесь работают.

Код вроде этого ...

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

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

Для разработки и тестирования я создал копию ProdDB в Enterprise Manager по

  • Резервное копирование 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. Все еще нет радости.

Я уверен, что делаю что-то простое и глупое. Любая помощь с благодарностью получена.

1 Ответ

0 голосов
/ 26 сентября 2010

В документации по открытому методу говорится, что он объявлен:

connection.Open ConnectionString, UserID, Password, Options

Так что, похоже, вы передаете TestDB как строку подключения.Я обычно называю открытым без указания каких-либо аргументов.Захватите строку подключения из строки подключения точка com и:

objConn.ConnectionString = "Data Source=localhost;Initial Catalog=testdb;" & _
    "User Id=myUsername;Password=myPassword;"
objConn.Open
...