プロが教える店舗&オフィスのセキュリティ対策術

やまとです。こんにちは。

PerlからDBに接続しているのですが、うまく出来ません。
環境は
OS : Windows2000、Perl : ActivePerl628、DB : Sybase11.0.3
DBI : DBI1.18、DBD : DBD_Sybase
です。
DBDとDBIインストール後、DBに接続するとエラーが起こります。

エラーが起こる場所は(ソース抜粋記載)
use DBI; (←ここは平気)
$dbh=DBI->connect($database, $db_user, $db_password) or return 0;
     (↑ここがエラー)
以上の箇所です。

もちろん、$database, $db_user, $db_passwordそれぞれの変数には
正しい値が入っています。

次にerror.logの内容ですが、
1つ目は、
Premature end of script headers: C:\・・・・・・・(←実行ファイル名)
2つ目は、
install_driver(Sybase) failed: DBD::Sybase initialize: cs_ctx_alloc() failed at C:/Perl/lib/DynaLoader.pm line 225.
3つ目は
at ./test.cgi line 43 (←connectの場所)
となっております。

色々調べてみましたが、分かりませんでした。
use DBI; は正常に動作していますので、DBDとDBIのインストールは正常に
出来ていると思うのですが・・・

同じ経験、又は、このエラーに関して分かる方いらっしゃいましたら、
対処法、ご教授願いたいのですが。

宜しくお願いします。

#環境の情報など不足している部分がありましたら補足させて頂きます。

A 回答 (1件)

こんにちは。



>もちろん、$database, $db_user, $db_passwordそれぞれの変数には正しい値が入っています。
とのことですが、書式もあっているのでしょうか??

cgiとして動かしているのなら、1のerrorはhttpヘッダ及びstatusがきちんと返って来ない場合におきることが多いです。
改行コードの問題でおきることもありますし、ftpでアスキーコードでアップロードしなおせば直ることもあります。
2のエラーはDBDモジュールが返してるものだと思います。
インストールの際にエラーメッセージや警告などは出ませんでしたか??
3は何がエラーになっているか表示されていないのでわかりません。

DBIはMLもありますので、質問されてみてもいいと思います。
また、参考URLはご覧になっているでしょうか??

参考URL:http://member.nifty.ne.jp/hippo2000/perltips/dbi …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

実は、全く同じ環境がありまして、その環境で動いているCGIをそのまま使用しています。そちらでは正常に動作しているのです。
よって、CGIの構文ミスはないと思うのですが・・・
ちなみに、DBD,DBIのコンパイルエラーは出ていません。

エラー内容から見ると、やはりDBD,DBIのインストールが出来ていないのでは
と思っております。(かなり煮詰まっている状態です)

ご紹介していただいたサイトを参考にもう一度確認してみようと思います。

お礼日時:2002/03/15 09:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!