Не удается подключиться к базе данных, ошибка 80040e21. Невозможно отладить - PullRequest
0 голосов
/ 09 августа 2010

У меня есть простой файл, который пытается подключиться к базе данных-

<%
Set RSDiscounts = Server.CreateObject("ADODB.Recordset")
RSDiscounts.ActiveConnection = "Data Source=serverName;Initial Catalog=dbName.dbo;Integrated Security=True"
%>

Когда я запускаю его, я получаю -

 error '80040e21'
 /filename.asp, line 3

Поиск кода ошибки не помогает. Я думаю, что в строке подключения указано что-то, чего не должно быть. Но я использовал Visual Studio для создания строки, и это нормально подключается к базе данных.

Есть ли способ, чтобы я мог понять, что не так? Это кажется невозможным для отладки.

Ответы [ 3 ]

2 голосов
/ 09 августа 2010

Я думаю, что проблема в вашей строке подключения - у вас есть строка для ADO.Net, но я не верю, что она будет работать с ADODB.

Попробуйте строку подключения, подобную этой:

Driver={SQL Native Client};Server=myServerName\theInstanceName;Database=myDataBase; Trusted_Connection=Yes

Или это строка подключения из одного из моих старых проектов с ADODB (от asp classic)

Provider=SQLOLEDB.1;Initial Catalog=databaseName;Data Source=serverName;Trusted Connection=Yes

Возможно, это не на 100% верно, но вы можете найти более подробную информацию овсе строки подключения, которые вы могли бы хотеть в отличном ConnectionStrings.com .

0 голосов
/ 16 августа 2010

Проблема будет в том, что вы пытаетесь подключиться к базе данных, используя пользователя, который запускает скрипт.Если это работает в IIS, это будет что-то вроде USR _.

2 альтернативы.

  1. Предоставьте этому пользователю доступ к базе данных (я бы этого не сделал).
  2. Создайте пользователя SQL и подключитесь через него.

    PROVIDER = SQLOLEDB; Источник данных = имя_сервера; Начальный каталог = dbName.dbo; Идентификатор пользователя = Веб-пользователь; ПАРОЛЬ = Веб-пароль пользователя;

0 голосов
/ 09 августа 2010

Из библиотеки я написал:

function SqlServerConnectionString( byval psDataSource, byval psCatalog, byval psUid, byval psPw)
'______________________________________________________________________________
'
'   'Sql Server Connection String'
'______________________________________________________________________________

   dim x
   x = "Provider=MSDASQL.1;Persist Security Info=False;User ID=" & psUid & ";Data Source=" & psDataSource &  ";Initial Catalog=" & psCatalog
   if psPw <> "" then
      x = x & ";pwd=" & psPw
   end if
   SqlServerConnectionString = x

end function

У меня есть похожие процедуры для Firebird, Odbc и Access.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...