Sql server 如何通过DBD::Sybase调整FreeTDS选项?
我在Windows 2012上的SQL Server 2012 Standard上托管了一个数据库。使用FreeBSD 10和p5-DBI-1.6.33以及p5-DBD-Sybase-1.15_1,我可以连接到它并使用以下Perl代码运行toy查询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" =>
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);