【发布时间】:2023-03-26 23:28:01
【问题描述】:
我在 Windows 2012 上的 SQL Server 2012 Standard 上托管了一个数据库。使用带有 p5-DBI-1.6.33 和 p5-DBD-Sybase-1.15_1 的 FreeBSD 10,我可以连接到它并使用以下命令运行玩具查询Perl 代码。
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 版本”)。
[global]
port = 1433
connect timeout = 10
timeout = 10
tds version = 8.0
text size = 64512
问题是,调整 freetds.conf 不是一个可接受的解决方案。我需要在 Perl 代码中指定连接参数,尤其是“tds 版本”和“端口”,就像连接到任何其他品牌的数据库时一样。我尝试如下更改数据源规范,但 DBD::Sybase 忽略了这些参数。
"dbi:Sybase:server=mydb.example.com;port=1433;tds_version=8.0;timeout=10"
除了通过 freetds.conf 之外,如何调整这些参数?
【问题讨论】:
标签: sql-server perl freebsd dbi