2014-10-22 3 views
0

Я пытаюсь подключиться к базе данных MS-SQL, используя perl и freetds. Я проверил установку FreeTDS с помощью UNIX командной строкиПроблема с доступом к mssql db с использованием perl и freetds в unix

`/usr/local/exec/bin/tsql -S myDB -I freetds.conf -U userName -P passw0rd -D DataBase1 -o q < query.sql` 

query.sql, где содержится мой запрос. Он работает отлично. Но когда я пытаюсь то же самое с Perl это дает мне следующую ошибку -

`Your sybase home directory is /opt/sybase. Check the environment variable SYBASE if it is not the one you want! Cannot access file /opt/sybase/config/objectid.dat` 

но работает

$ set | grep SYBASE урожайности SYBASE=/usr/fsf/freetds

Ниже моя Perl-код:

#!/usr/bin/perl5/core/5.8.8/exec/bin/perl 

use lib qw(/usr/perl5/core/5.8.8/exec/lib); 
use lib qw(/usr/perl5/DBI/1.607/exec/5.8/lib/perl5); 
use lib qw(/usr/perl5/DBD-Sybase/1.09/exec/5.8/lib/perl5); 

use DBI; 
use DBD::Sybase; 

my $user = "userName"; 
my $passwd = "passw0rd"; 
my $server = "myDB"; 

`export SYBASE=/usr/fsf/freetds`; 
`export LD_LIBRARY_PATH=/usr/fsf/freetds/0.82/exec/lib`; 
`export FREETDSCONF=./freetds.conf`; 

my $dbh = DBI->connect("DBD:Sybase:server=$server", $user, $passwd, {PrintError => 0}); 

unless ($dbh) { 
    die "ERROR: Failed to connect to server ($server).\nERROR MESSAGE: $DBI::errstr"; 
} 
else { 
    print "\n"; 
    print "Successful Connection."; 
} 

Любая помощь очень признателен!

+0

какая версия perl "perl -v"? – keety

+0

Это Perl v5.8.8 – MattO

+1

Путь к вашим драйверам говорит 5.10. Возможно, вы загрузили драйверы для неправильной версии perl. Либо обновите до 5.10.1, либо получите драйверы для 5.8.8. – AKHolland

ответ

1

Путь к вашим водителям говорит 5.10. Возможно, вы загрузили драйверы для неправильной версии perl. Либо обновите до 5.10.1, либо получите драйверы для 5.8.8.

 Смежные вопросы

  • Нет связанных вопросов^_^