• 締切済み

データベースが読めなくなって困っています(>_<)

Perl 5.1.9、Apacheの環境下で動かしていた掲示板のプログラムをNiftyのLaCoocan に移したところ、データーベースの内容が表示されなくなってしまいました。 プログラムは、変更自由のフリーのものを、自分用に変更して作成したものです。 dbmopen、dmbcloseを使用しています。モジュールは、CGI_Liteを使用しています。 Apacheでは、正常に動いていました。 原因がわからず、困っています。どういうことが考えられるでしょうか? 今後も何とか使いたいので、教えてください。お願いします。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

>書いてもらった英文と例文(?)はどのような意味ですか? オンラインマニュアルの、dbmopen のところから一部切り出したものです。 要するに dbmopen は obsolete だから tie を使えということです。

mintmammy
質問者

お礼

教えていただき、ありがとうございました。 tie を使用するように変えてやってみます。 どうもありがとうございました。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

dbmopenを使うのは古いやり方なんですがまあそれはおいといて、 dbmopen したときに正常にオープンできていますか? データベースの実体を違うマシンからコピーしても、 データベースルーチンが違うとか、同じでもバージョンが違うとか いくつかデータベースのフォーマットに互換性がなくなる可能性があります。 こういうときは一度テキストにデータベースの内容をシリアライズしておいて 新しいマシンでデータベースを再構築すると貸した方が良いと思います。 You can control which DBM library you use by loading that library before you call dbmopen(): use DB_File; dbmopen(%NS_Hist, "$ENV{HOME}/.netscape/history.db") or die "Can't open netscape history file: $!";

mintmammy
質問者

お礼

回答ありがとうございます。 オープンエラーにはなっていないのですが、やはり再構築したほうがいいのでしょうか…。 そのままなんとか使えないかと思ったのですが。 古い本を参考にしたので、新しいデータベース用のやり方に変えたほうがいいのかなとも思ったのですが、あまりよくわからなくって。 書いてもらった英文と例文(?)はどのような意味ですか?

関連するQ&A

専門家に質問してみよう