perl 连接sql server数据库

来源:互联网 发布:防范网络诈骗心得800 编辑:程序博客网 时间:2024/06/06 02:50

本质上是和连接mysql一样的,但是需要配置很多东西

先看代码:

use DBI;
my $DSN = "driver={SQL Server};server=192.168.1.213;database=msy;uid=perlname;pwd=6789177";
my $dbh=DBI->connect("DBI:ODBC:$DSN") or die "couldn't open database: DBI->errstr";
my $sth=$dbh->prepare("select * from SITE where SITEID='1'") or die "Couldn't prepare statement: DBI->errstr";
$sth->execute();
while (@data = $sth->fetchrow_array()) {
print "id:$data[0]\t name:$data[1]\n";
}
$sth->finish();
$dbh->disconnect();

1.如果你报

DBI connect('driver={SQL Server};Server=192.168.1.213;Database=msy;UID=perl
name;PWD=6789177','',...) failed: [Microsoft][ODBC SQL Server Driver][DBNETLIB]
无效的连接。 (SQL-08001) [state was 08001 now 01000]
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (ParseConnectParams(
)). (SQL-01000) at D:\Perl\sql.pl line 3
couldn't open database: DBI->errstr at D:\Perl\sql.pl line 3.

需要建立个用户,来sql登录当初建立了sa就不用建立了

如果没建立的话,就新建登录名

再选服务器角色为和用户映射

选中你要操作的表
不然会出现:

DBD::ODBC::st execute failed: [Microsoft][ODBC SQL Server Driver][SQL Server]拒
绝了对对象 'ADVERTISING' (数据库 'msy',架构 'dbo')的 SELECT 权限。 (SQL-42000)
at D:\Perl\sql.pl line 5. 没有权限