本质上是和连接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:Perlsql.pl line 3
couldn't open database: DBI->errstr at D:Perlsql.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:Perlsql.pl line 5. 没有权限