代码之家  ›  专栏  ›  技术社区  ›  culix

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

  •  11
  • culix  · 技术社区  · 17 年前

    4 回复  |  直到 17 年前
        1
  •  13
  •   bart    17 年前

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

    my $dbh = DBI->connect("dbi:ODBC:$dsn", $user, $pwd, \%attr);
    

    用户数据源和系统数据源的区别在于后者可供任何用户使用。

    另见: HOW TO: Create a System Data Source Name in Windows XP

        2
  •  6
  •   brian d foy    17 年前

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

    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";
    }
    
        3
  •  4
  •   Tanktalus    17 年前

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

        4
  •  0
  •   Neil McGuigan    10 年前

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

    DBI:ADO:Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=localhost;Initial Catalog=$dbName;