Sql server 如何使用Perl'连接到MSSQL数据库;Windows中的DBI模块?

Sql server 如何使用Perl'连接到MSSQL数据库;Windows中的DBI模块?,sql-server,windows,perl,Sql Server,Windows,Perl,如何在Windows中使用Perl的DBI模块连接到MSSQL数据库?找不到可靠的地方。使用类似于 use DBI; my $dbs = "dbi:ODBC:DRIVER={SQL Server};SERVER={ServerName}"; my ($username, $password) = ('username', 'password'); my $dbh = DBI->connect($dbs, $username, $password); if (defined($dbh))

如何在Windows中使用Perl的DBI模块连接到MSSQL数据库?

找不到可靠的地方。使用类似于

use DBI;
my $dbs = "dbi:ODBC:DRIVER={SQL Server};SERVER={ServerName}";
my ($username, $password) = ('username', 'password');

my $dbh = DBI->connect($dbs, $username, $password);

if (defined($dbh))
{
    #write code here
    $dbh->disconnect;
}
else
{
    print "Error connecting to database: Error $DBI::err - $DBI::errstr\n";
}

使用DBD::ODBC。如果您只是使用“控制面板”->“系统管理”->“ODBC数据源”->“系统数据源”或“用户数据源”(这些是我记得的名称,但我的XP不是英文的,所以我无法检查),那么您所要做的就是在DBI connect字符串中使用该数据源的名称

my $dbh = DBI->connect("dbi:ODBC:$dsn", $user, $pwd, \%attr);
用户数据源和系统数据源的区别在于后者可供任何用户使用


另请参见:

检查,我看到了实际使用Sybase DBI驱动程序连接MS SQL的建议。这是有道理的,因为MS SQL源于Sybase代码。当然,ODBC也可以工作。

使用OLEDB和集成安全性(Windows身份验证):

DBI:ADO:Provider=SQLOLEDB.1;综合安全=SSPI;数据源=本地主机;初始目录=$dbName