• ベストアンサー

ファイルサーバーのDBへのアクセス方法

以前、ORACLEにアクセスする方法で悩んでいたものです。 結局、ORACLEを直接アクセスすることをあきらめてACCESS経由にしました。 自分のパソコンでCGIと同じフォルダにACCESSのDBを作って試験しました。 この環境では、成功しました。 そこで、ACCESSのDBをファイルサーバー上(色々なPCからアクセスさせるため)に おいて、同じことをしようとしましたら、DBへCONNECTできなくなりました。 ホスト名やポート番号はあっています。 何か他に必要なことがあるのでしょうか? どなたか教えていただけないでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • NARH
  • ベストアンサー率82% (88/107)
回答No.1

あら、ORACLEは諦めて、ACCESSにしちゃうってことですか? 僕の思い込みかもしれませんが、ACCESSってファイルをオープンするタイプのでDBで、直接ネットワーク接続できるものじゃないですよね? なので、 > ホスト名やポート番号はあっています。 このポートを待ち受けているプログラムって何? (実はACCESSってポートを開けて待ってたりするんですか?) ネットワークドライブ等で、ファイルとしてオープンして使うものじゃないのかな?

hirocyan999
質問者

お礼

ありがとうございました。 ACCESS DBは、クライアントにおくことにしました。 ただ、ACCESSのテーブルは読めるのですが、ACCESSでLINKしたORACLEのテーブルを よみにいくと以下のエラーが出てしまって困っています。 error:Statement handle not marked as Active EXCELからACCESSでLINKしたORACLEのテーブルは読めるのですが、PERLでは読めません。 教えていただけないでしょうか?

その他の回答 (1)

  • NARH
  • ベストアンサー率82% (88/107)
回答No.2

> ただ、ACCESSのテーブルは読めるのですが、ACCESSでLINKしたORACLEのテーブルを > よみにいくと以下のエラーが出てしまって困っています。 > error:Statement handle not marked as Active > EXCELからACCESSでLINKしたORACLEのテーブルは読めるのですが、PERLでは読めません。 ACCESSは素人なので解らないですが、想像するにACCESSは内部で他のデータベースへのリンクと判別すると、ハンドラを切り替える処理をしていると思います。 この処理はACCESSが行っているので mdb ファイルには、他のデータベースへのリンクですよというマークしかないんじゃないかと想像します。 なので、Perlでも同等の処理を加えなければならず > error:Statement handle not marked as Active と、そんなハンドラ使えないっす。とエラーになってるのかと。 エラーの文章をみると、ハンドラ名(DSN名かな?)が渡ってきているっぽいので、そのハンドラを、あらかじめ(ODBCドライバかな)用意しておけば使えるのかも? なんかいきあたりばったりで、複雑になってません? 一度シンプルにならないか、見直してみてはどうですか?