Расширенная хранимая процедура с ODBC DSN - PullRequest
0 голосов
/ 07 августа 2009

У меня есть расширенная хранимая процедура (написанная на Delphi, если это имеет какое-то значение), которая устанавливает свое собственное соединение через ODBC и выполняет некоторую обработку - вещи, которые нельзя сделать с помощью одного T-SQL.

Если я пытаюсь подключиться, используя системный DSN, который настроен (например, с именем MyDataSource), xp возвращает следующую ошибку:

[Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Не удается открыть базу данных, запрошенную при входе в систему «MyDataSource». Ошибка входа.

Однако, если я подключаюсь, используя строку подключения (SERVER = MyServerName; DATABASE = MyDatabaseName; и т. Д.), Тогда он подключается и xp работает.

Я тестировал код вне xp, просто приложение для Windows, и соединение с использованием DSN работало. Я ожидал бы этого, так как я подключался к базе данных в течение 10 лет!

Так что у меня это работает, но я действительно хочу знать, почему он не работает с использованием DSN. Я также пытался с DSN пользователя, но без разницы.

Есть идеи? Спасибо.

1 Ответ

1 голос
/ 07 августа 2009

Имейте в виду, что при выполнении расширенной хранимой процедуры она запускается под именем входа, используемым службой сервера SQL. Если в журнале этого SQL-сервера нет разрешений в сети, произойдет ошибка отказа. Надеюсь, это поможет.

...