У меня есть скрипт perl, который подключается к серверу Sybase db (псевдоним для сервера - MYDATABASESERVER).Мой код:
exec perl -w -x
#!perl
use Sybase::DBlib;
use Mail::Sendmail;
use Env qw(DSQUERY DBNAME DBUSER DBPASSWD);
$dbh = &execRemoteSQL($sql_text);
sub execRemoteSQL
{
my ($sqlText) = @_;
my ( $ret, $retS );
local ($dbh) = undef;
$dbh = new Sybase::DBlib $DBUSER, $DBPASSWD, $DSQUERY;
if ( !(defined $dbh) )
{
print STDERR "execRemoteSQL(): Failed To Create DB Handle for :\n";
print STDERR " SERVER = $DSQUERY\n";
print STDERR " DATABSE = $DBNAME\n";
exit(-1);
}
.
.
.
Когда я предоставляю имя сервера как MYDATABASESERVER (значение DSQUERY), я получаю сообщение об ошибке в операторе If, но он правильно подключается к серверу с именем как MYDB.
Хотелось бы узнать, есть ли какие-либо ограничения на длину имени сервера или это связано с чем-то другим.
Вот сообщение об ошибке, которое я получаю:
DB-Library error:
Unknown host machine name.
execRemoteSQL(): Failed To Create DB Handle for :
SERVER = MYDATABASESERVER
DATABSE = my_db
Псевдоним сервера определен правильно, потому что я могу подключиться к БД с помощью isql.