こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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)
----------------------------------

投稿日時 - 2005-09-03 02:21:53

QNo.1623186

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

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

投稿日時 - 2005-09-04 14:20:19

補足

回答ありがとうございますm(_ _)m

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

投稿日時 - 2005-09-05 01:00:21

お礼

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

投稿日時 - 2005-09-07 23:31:10

あなたにオススメの質問