Я пытаюсь подключиться к базе данных 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.";
}
Любая помощь очень признателен!
какая версия perl "perl -v"? – keety
Это Perl v5.8.8 – MattO
Путь к вашим драйверам говорит 5.10. Возможно, вы загрузили драйверы для неправильной версии perl. Либо обновите до 5.10.1, либо получите драйверы для 5.8.8. – AKHolland