こんばんわ。最近、Perlを使い始めたばかりの初心者です。解決方法がわからないので、教えて下さい。
PerlとWin32::ODBCを使ってDBにアクセスするプログラムを組んでいるます。DB接続まではうまくいくのですが、それ以降に以下のようなエラーがでます。モジュールが足りないようなのですが、どのようにして解決すればよいかわかりません。以下にエラーとコードを記入します。
コード:
#!/usr/local/bin/perl
$DSN = "DSN=DB1;UID=kaki388";
use Win32::ODBC;
if (!($0 = new Win32::ODBC($DSN))){
print Win32::ODBC::Error();
print "失敗";
exit();
}
print "成功";
$sql = "SELECT * FROM tbl1";
$0->run("$sql");
$0->sql("$sql");
@fn = $0->FieldNames();
while($0->FetchRow()){
undef %Data;
%Data = $0->DataHash();
print "$Data{$fn[$i]}<BR>\n";
}
$0->Close;
エラーコード:
2004/08/26(11:49:14) W-SV 127.0.0.1 [80] E200042 "Can't locate object method "run" via package "Win32::ODBC=HASH(0x275020)" (perhaps you forgot to load "Win32::ODBC=HASH(0x275020)"?) at odbc.cgi line 11.
"
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
まず、DB接続を保存している変数名が良くないです。
$0はグローバルな特殊変数(組込み変数)でスクリプトファイル名が格納されています。これに値を代入すると、UNIXなどではプロセスの表示が変わるようです。
$0や$!の様な特殊変数は通常の変数としては使えません。
DSNへのデータ接続のインスタンスを$0では無く、通常の変数に格納して下さい。(例えば、$connection など)
それから、perlでは、大文字と小文字を区別しますので、メソッド名などは大文字と小文字まで正確に記述する必要が有ります。
ですので「run("$sql")」「sql("$sql")」は「Run($sql)」「Sql($sql)」となります。
例 -----------------------------------------------
use Win32::ODBC;
$DSN = "DSN=DB1;UID=kaki388";
if (!($connection = new Win32::ODBC($DSN))){
print Win32::ODBC::Error();
print "失敗";
exit();
}
print "成功";
$sql = "SELECT * FROM tbl1";
$connection->Run($sql);
$connection->Sql($sql);
@fn = $connection->FieldNames();
while($connection->FetchRow()){
my %Data = $connection->DataHash();
print "$Data{$fn[0]}<BR>\n";
}
$connection->Close;
--------------------------------------------------
参考URL:http://member.nifty.ne.jp/hippo2000/perltips/win …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
Strawberry Perl for Windows ...
-
Perlの全角スペース 文字化け?
-
Perlで、「が」を、「...
-
Perlでの文字列置換
-
Perlでテキストファイルの一部...
-
サクラエディターの設定の仕方...
-
検索ボックスから製品名を検索...
-
マイコンを使った時のセンサー...
-
Perl 特定のフォルダ以外削除
-
Perl 仮登録、本登録システムに...
-
Perl 正規表現
-
Perl テキスト 重複 個数
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
INDIRECT 横に再度抽出したい
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
bashスクリプト
-
Perlのエラーについてご教授く...
-
Perlで特定文字列から特定文字...
-
画像が表示でnull; this.src
-
Wallpaper Engineでおすすめの...
-
Perl言語について。
-
perl LWPでURLにアクセスした時...
-
Perlで時間の計算
-
Perlで、「が」を、「...
-
ファイルアイコンの左下に緑の□...
-
Perl の外部モジュールの利用方法
-
このファイルを開く方法で困っ...
-
perlで2次元配列をサブルーチ...
-
Windows10においての『Perl』の...
おすすめ情報