Как использовать Win32 :: SqlServer для удаленного подключения? - PullRequest
0 голосов
/ 02 ноября 2009

Мне не удалось установить успешное соединение с моим SQL Server (2005) с помощью Win32 :: SqlServer. Сервер находится на другой машине. Я использую последнюю версию ActivePerl и модуль.

Используя поставщика ADO.NET ( в C # ), я могу установить успешное соединение со строкой соединения: Data Source=1.2.3.4,1553;Initial Catalog=dbname;User Id=username;Password=pw;

Чтобы преобразовать это в Perl, я попытался сделать следующее:

my $conn = Win32::SqlServer::sql_init();

$conn->setloginproperty('ConnectionString', 'Data Source=1.2.3.4,1553;Initial Catalog=dbname;User Id=username;Password=pw;');
print $conn->connect();

Также я попытался настроить сервер, информацию для входа в систему и исходную базу данных по отдельности, используя setloginproperty ().

Все они терпят неудачу с сообщением после истечения времени ожидания:

SQL Server message 2, Severity 16, State 1
Named Pipes Provider: Could not open a connection to SQL Server [2].
Message 08001 from 'Microsoft SQL Native Client', Severity: 16
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Message HYT00 from 'Microsoft SQL Native Client', Severity: 16
Login timeout expired
Terminating on fatal error at mkadm.pl line 54

1 Ответ

0 голосов
/ 12 ноября 2009

Причина, по которой ранний пример не удался, заключается в том, что метод sql_init() ожидает, что ему будут переданы аргументы. Чтобы использовать setloginproperty() для ввода настроек, ->new() следует использовать для создания неинициализированного объекта SqlServer!

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