• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mdbを直接開いてもasp側に影響を与えない方法について)

mdbを直接開いてもasp側に影響を与えない方法について

このQ&Aのポイント
  • Windows Server 2003 R2 SP1を使用してIIS6.0を運用中の場合、ODBCを使用してmdbファイルをASPから接続している際に、直接mdbファイルを開いているとASPのページにエラーメッセージが表示されます。この問題を解決する方法について説明します。
  • mdbファイルを直接開いてもASP側でもエラーメッセージが表示されないようにするための対策方法を説明します。具体的には、mdbファイルへのアクセスを制限し、メンテナンス時にはASPからのアクセスを一時的に停止することが考えられます。
  • mdbファイルへの直接アクセスによるASPのエラーメッセージ表示を防ぐためには、サーバ側に設置しているmdbファイルへのアクセス権限を制限することが必要です。また、メンテナンス時にはmdbファイルを直接開かず、ASPからのアクセスを一時的に停止することで問題を回避することが可能です。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

エラートラップを仕掛けておいて回避するといった方向でしょう On Error Resume Next Set cnn=Server.CreateObject("ADODB.Connection") On Error Goto 0 if not cnn is nothing then   cnn.open "dummy"   cnn.close   cnn.open "testdb"  '// ODBCをtestdbにしています。   SQL = "SELECT * FROM M_USER ORDER BY USERID"   On Error Resume Next   Set rs1 = cnn.Execute(SQL)   On Error Goto 0   if not rs1 is nothing then     ' 正常に読み込めた場合の処理   else     ' 何かのエラーが起きた場合   end if else   ' 何かのエラーが起きた場合 end if といった具合に トラップを仕掛ける範囲を限定して対処してみましょう cnn.Open でエラーになっているなら on error resume next cnn.Open "testdb" if err.number<>0 then   ' Open失敗時の処理 end if on error goto 0 といった具合かと

crossone
質問者

お礼

redfox63様、ご回答ありがとうございます。 エラートラップでエラー表示そのものは回避できるかと思いますが、 今回は、asp側でのエラーの根本的な解決をしたいと考えております。 曖昧な情報で申し訳ないのですが、現在のサーバにリプレイスする前は 直接mdbファイルを開いていても、asp側でも正常にOpen出来ていたため、 排他で開かない設定方法があるのではないかと思い、ご相談した次第です。 リプレイス前と現在はプログラムソースは変更ありませんので、 ODBCの設定で何かあるのかと思ったのですが…。

crossone
質問者

補足

エラーの件、自己解決しましたのでご報告いたします。 mdbファイルを設置しているディレクトリのアクセス権限が ないことによる現象だったようです。 テスト的に、Usersにフルコントロールを設定したところ、 直接mdbファイルを開いていても、asp側で問題なくOpenできました。 #ただ、直接mdbファイルを開いていない時は問題なくasp側でOpenが  出来ていて、なぜUsersに権限がないと直接開いている時にエラーに  なるのかはよくわからないままです…。 今回はたまたま解決できましたが、いつ原因不明のエラーと出くわすか わからないので、redfox63様のご回答どおり、エラートラップも ちゃんと対応していきたいと思います。 この度は本当にありがとうございました。

関連するQ&A