如何使用Win32 :: SqlServer远程连接?

时间:2009-11-02 08:01:30

标签: sql-server perl winapi

我无法使用Win32 :: SqlServer成功连接到我的SQL Server(2005)。服务器位于另一台计算机上。我使用的是最新版本的ActivePerl和模块。

使用ADO.NET提供程序( in 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 :(得分:0)

早期示例失败的原因是因为sql_init()方法需要传入参数。 为了使用setloginproperty()注入设置,应使用->new()来创建未初始化的SqlServer对象!