• 締切済み

CGIからAccessの操作がうまくできません・・・。

AccessからSQLでデータを取り出すCGI(Perl)を作っているのですが、 コマンドプロンプトで実行するとSQLが正しく実行されデータを抽出できるのに、 CGIとして動かすと、SQLの実行がうまくいかないようで、データの抽出ができません。 何に問題があるのでしょうか・・・? CGIもPerlも全くのド素人なので、本やネットでひとつひとつ調べながら書いていて、 このエラーに関しても、ここ2,3日ずっと調べたり書き換えて試したりしているのですが、 全く原因がわからず、途方にくれています(>_<) 助けてください・・・。よろしくお願いいたします。 ■CGIのソース ---------------------------------- #!C:/Perl/bin/perl use OLE; $cnDB = CreateObject OLE "ADODB.Connection"; $cnDB->Open('Test'); # TestはODBC接続しています $rs = $cnDB->Execute('SELECT * FROM test;'); $ret = ""; if($rs eq undef){  $ret = "ERROR"; } else{  for ( ; !$rs->EOF(); $rs->MoveNext ) {   $ret = $ret.$rs->Fields('data')->Value"\n";  } } $rs->Close(); $cnDB->Close(); # このあとHTML形式で$retを書き出して結果を見ています ■実行結果($retの値) ---------------------------------- ・コマンドプロンプトで実行   $ret = 抽出データ ・CGIで実行   $ret = ERROR ■実行環境 ---------------------------------- ・ActivePerl5.8.x (xはなんだったか忘れてしまいました) ・Windows2000サーバー上で実行(IIS) ----------------------------------

みんなの回答

  • hiroaki_0
  • ベストアンサー率53% (131/245)
回答No.1

コマンドラインで実行している時と、CGIとして実行する時では、ユーザーが異なると思いますが、その点はクリアされていますか?

pooh51
質問者

お礼

ODBC接続の設定ミスが原因だということがわかりましたf(^^;; どうもありがとうございました。

pooh51
質問者

補足

回答ありがとうございますm(_ _)m 私の知識が乏しいため、ずれたことを書いているかもしれませんが・・・。 開こうとしているAccessファイルのセキュリティは 「Everyoneでフルコントロール」になっています。 なので、誰でも「フルコントロール」で使えるのかなと思います。

すると、全ての回答が全文表示されます。

関連するQ&A