2016-02-10 66 views
0

我試着通過連接到 MSSQL 的perlFreeBSD的。 在Linux上它很容易:連接到通過PERL MSSQL在FreeBSD *

apt-get install libdbi-perl freetds-bin libdbd-sybase-perl 

之後,我創建的設置freetds.conf文件。例如:

[MSSQL] 
    host = %my server% 
    port = 1433 
    tds version = 7.0 

其工作。出於同樣的邏輯我tryed:

cd /usr/ports/databases/p5-DBI/ && make install clean 
cd /usr/ports/databases/freetds/ && make install clean 
cd /usr/ports/databases/p5-DBD-Sybase/ && make install clean 

然後,我從Linux上運行相同的代碼:

use DBI; 

my $hostname = 'MSSQL'; 
my $database = %my database%; 
my $user = %my user%; 
my $pass = %my password%; 

my $dbh = DBI->connect("DBI:Sybase:server=$hostname;database=$database", $user, $pass); 

,我也得到:

DBI connect('server=MSSQL;database=%my database%, %user%, %password%) failed: (no error string) 

我會很高興的任何幫助。

回答

2

您還可以使用pkg工具在您的freebsd框中安裝軟件包。 所以,這樣的事情:

pkg install p5-DBI p5-DBD-Sybase freetds 

關於你的Perl體檢劇本,我想,你也需要包括:

use DBD:Sybase; 

而且我會給一個嘗試改變DBI:Sybase:server=...dbi:Sybase:server=...

但是,如果您需要確認,請檢查以下網址:http://search.cpan.org/~mewp/DBD-Sybase-1.15/Sybase.pm

希望我的0.002幫助! ;-)

+0

你也可以查看[link] https://www.freebsd.org/doc/handbook/pkgng-intro.html – Vinnix

0

看來不同版本的Sybase.pm有不同的DBI->連接參數解析邏輯。

我剛剛發現Sybase.pm $ 1.115標識$不與形式的呼叫工作

DBI->connect('DBI:Sybase:server=mydbhost:database=dbname','username','password') 

(注意「mydbhost」和「數據庫」之間的冒號),而Sybase.pm $ Id 1.44 $完美。 還是DBI的差異?

在此處發佈Google搜索。