Sql server 如何通过DBD::Sybase调整FreeTDS选项?

Sql server 如何通过DBD::Sybase调整FreeTDS选项?,sql-server,perl,freebsd,dbi,Sql Server,Perl,Freebsd,Dbi,我在Windows 2012上的SQL Server 2012 Standard上托管了一个数据库。使用FreeBSD 10和p5-DBI-1.6.33以及p5-DBD-Sybase-1.15_1,我可以连接到它并使用以下Perl代码运行toy查询 my $dbh = DBI->connect( "dbi:Sybase:server=mydb.example.com", "username", "mypassword", {"RaiseError" =>

我在Windows 2012上的SQL Server 2012 Standard上托管了一个数据库。使用FreeBSD 10和p5-DBI-1.6.33以及p5-DBD-Sybase-1.15_1,我可以连接到它并使用以下Perl代码运行toy查询

my $dbh = DBI->connect(
    "dbi:Sybase:server=mydb.example.com",
    "username",
    "mypassword",
    {"RaiseError" => 1, "PrintError" => 0},
);
print "Connected.\n";

my $version = $dbh->selectall_arrayref('SELECT @@VERSION', {Columns => {}});
print Dumper($version);

my $tables = $dbh->selectall_arrayref("SELECT * FROM information_schema.tables", {Columns => {}});
print Dumper($tables);
这是可行的,但是我需要用以下内容替换/usr/local/etc/freetds/freetds.conf(决定性的元素是“tds版本”)

问题是,调整freetds.conf不是一个可接受的解决方案。我需要在Perl代码中指定连接参数,特别是“tds版本”和“端口”,就像连接到任何其他品牌的数据库时一样。我尝试如下更改数据源规范,但DBD::Sybase忽略了这些参数

"dbi:Sybase:server=mydb.example.com;port=1433;tds_version=8.0;timeout=10"

除了通过freetds.conf之外,如何调整这些参数?

您应该能够创建一个替代配置文件,并通过
接口将其提供给DBI
参数:

$dbh = DBI->connect('dbi:Sybase:interfaces=/path/to/your/config',
                    $user, $passwd);

呵呵。这就足够了,但似乎也没有任何效果。我怀疑DBD::Sybase中有一个bug,除了server=,它没有解析任何参数。
$dbh = DBI->connect('dbi:Sybase:interfaces=/path/to/your/config',
                    $user, $passwd);