Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Подключение к MSSQL


Автор: Itsys 17.10.2008, 09:51
Добрый день,

При подключении к серверу MS SQL выдается такая ошибка:
Код

[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database requested in login '*Имя базы*'. Login fails. (SQL-42000)(DBD: db_login/SQLConnect err=-1)


Подключение осуществляется с помощью:
Код

our $SQL  = DBI->connect("dbi:ODBC:driver={SQL Server};Server=*Имя сервера*;database=*Имя базы*;uid=sa;pwd=*пароль для sa*;") or die "$DBI::errstr\n";


при этом, SQL сервер и сервер на котором запускается скрипт - это разные сервера.

При разработке использовался локальный SQL сервер и все работало нормально.

ЗЫ дополнительны условия: пароль sa проверял - правильный, имя сервера - тоже, база на сервере присутсвует, это CGI скрипт работает на Win2003 под IIS.

Добавлено через 9 минут и 16 секунд
ЗЫ все прекрасно работает при настройке в ODBC DSN, т.е. при вызове
Код

$SQLBASE = DBI->connect("DBI:ODBC:*имя DSN*", "sa", "*пароль для sa*", {PrintError => 1, AutoCommit => 1, LongReadLen => 2000000});

Автор: ginnie 17.10.2008, 11:14
Itsys, можно попробовать вместо Server=*Имя сервера* написать Host=1.2.3.4;Port=123 с Вашими значениями у Вас доступ к серверу по TCP/IP разрешен? Мне, к сожалению, попробовать не на чем, так что совет чисто теоретический (по документации).

P.S. Может быть дело в том, что в одном случае у Вас логин и пароль включены в data_sourse, а во втором указаны как отдельные параметры?

Автор: Itsys 17.10.2008, 12:23
Не хочет.... если гоа не идет к Магомеду, то Магомед идет к горе.... сделал через DSN smile


ginnie, спасибо за совет.

Автор: ginnie 17.10.2008, 12:52
Itsys, посмотри еще лог SQL-сервера, есть там что-нибудь? Попытка соединения видна? Можно еще посмотреть по поводу логирования в ODBC, но не уверен, что получится.

Добавлено через 36 секунд
P.S. Включи максимальный trace в DBI.

Автор: Itsys 17.10.2008, 19:06
Цитата(ginnie @  17.10.2008,  12:52 Найти цитируемый пост)
Можно еще посмотреть по поводу логирования в ODBC, но не уверен, что получится

Что что а этого точно не получится...

Цитата(ginnie @  17.10.2008,  12:52 Найти цитируемый пост)
лог SQL-сервера

Как такого "Лога" у MSSQL нету.... есть трайсер, но он подключается к определенной базе.... в нем подключение к базе не фиксируется

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)