Sybase DBサーバ(MYDATABASESERVERサーバのエイリアス)に接続するperlスクリプトがあります。私のコードは次のとおりです。私はMYDATABASESERVER(DSQUERYの値)としてサーバー名を提供する場合Sybase DBに接続中にエラーが発生しました
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);
}
.
.
.
、私は、If文でエラーが出るが、それはMYDBとして名前のサーバに適切に接続されています。
サーバー名の長さに制約があるかどうかを知りたい場合、またはそれ以外の理由がある場合
DB-Library error:
Unknown host machine name.
execRemoteSQL(): Failed To Create DB Handle for :
SERVER = MYDATABASESERVER
DATABSE = my_db
を私はisqlを使用してDBに接続することですので、サーバーの別名が正しく定義されています。ここでは
は私が取得していますエラーmesssageです。
実際のエラーメッセージは何ですか? – Bryan
[厳格と警告を使う理由は?](http://stackoverflow.com/questions/8023959/why-use-strict-and-warnings) – TLP
Sybase :: DBlibにデバッグが組み込まれていることに気づくことはできません:http://search.cpan.org/~mewp/sybperl-2.19/DBlib/DBlib.pm#Utility_routinesそれを使用していない理由はありますか? – TLP