• ベストアンサー

ASPでADOを使う場合

ASPでADOを使う場合、 ADOコネクションをセッション変数に代入し、再利用し方がよいのでしょうか?それともクライアントの問い合わせごとに作成して処理した方がよろしいのでしょうか?

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

  • ベストアンサー
  • kztk
  • ベストアンサー率53% (59/110)
回答No.2

後者です。 以下のURLを参照してください。 『データベース接続を Application オブジェクトまたは Session オブジェクトにキャッシュしない』 http://www.microsoft.com/japan/msdn/web/server/asp/asptips.asp#asptips_tip5

fujisawa326
質問者

お礼

これからADOを使う上でかなり参考になる資料でした。 ありがとうございました。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 目的によりますが、小規模LAN内用Webアプリは前者、不特定多数のクライアントを相手する場合は後者が良いのではないでしょうか。  前者はクライアント数がもともと増えない想定で速度の向上を目的としますが、クライアント数が増えるとコネクションも増え、結果ライセンス違反(CAL方式の場合)などを引き起こします。  後者の場合は、ページビューが増えるとコネクションが多くなりますが、処理速度はまぁ分散化などで頑張って対応しましょう。ライセンスは普通インターネットコネクタライセンス(Microsoft)またはそれに類するライセンスを使う事になります。

fujisawa326
質問者

お礼

貴重なご意見ありがとうございます。

fujisawa326
質問者

補足

前者の場合でADOコネクションを一つグローバルで宣言して他のセッションで他ユーザが共有して利用する場合は利点があるのでしょうか?

関連するQ&A

  • ASPでクライアントからファイルを受け取る方法は?

    ASPでクライアントからファイルを受け取るにはどうのようにしたらよいでしょうか? サーバー側はADOがインストールされています。 サーバーの環境は変更できません。 ADO.Streamを利用して実現できないでしょうか? よろしくお願い致します。

  • ADOについて

    VB6のディストリビューションウィザードを使い、 インターネットパッケージを作成しました。 サーバーはNT4sp6です VBはver6sp3です。 クライアント側は95/98/NT/2000で動かしたいと考えております しかし、95でADOのプロバイダがおかしいとメッセージがでます。 データはMDBを使っています。 全てのOSで動作することを考え、特殊なコンポーネントは使っていません しいて言うなら、ADOくらいなんですけど・・・。 あとは標準のまま使っています。 私がやろうとしていることは実現できるのでしょうか? ADOって難しくって困りますね(笑) どなたか詳しい方がいたら宜しくお願いします。

  • ASPで画面間のパラメタ受け渡し

    こんばんは。ASP初心者です。 ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

  • ASP.NET(C#)のメモリ解放について

    少し質問しづらいのですが、 ASP.NET(C#)でメモリ解放を行う場合、 ・変数 ・インスタンス ・セッション の3つを使い終わった後に、nullやRemoveしておけば、 そのうちガベージコレクションでメモリ解放されるのでしょうか。 他にも何か使い終わった後に処理しておかないといけない、 (データ接続などを閉じておくなど)

  • ASP経由でのODBCの接続について

    WindowsServer2008SP1(64bit版)で開発しています。 クライアントからサーバーのASPを動かして、そのASPの中でexeを動かしているのですが、その際に「指定したコネクションは存在しません」というメッセージと共にエラーになってしまいます。 サーバーから直接VBSで動かしたときには、上手くいくのですが、ASPからだと上手くいかないという現象です。 SQLServerへの接続にはODBCを使っており、システムDNSにも作成してあるのですが、ほかに何か設定が必要なのでしょうか?

  • ASPをバッチ風に起動

    今ASPからバッチを起動しようとしています。 Shelコマンドでbatを起動しようと思ったのですが、セキュリティとの問題があり、その処理のみを行うASP(画面表示無し)を作成しバッチASPとして処理を実行させていたます。 その際、メインの画面はバッチASPを呼び出すだけなのですが(window.openでバッチASPを呼び出す)、バッチASPが重い処理を行っているとメインのASPも実行がされなくなってしまいます。(待ち状態) バッチASPではADOでトランザクションを行いSQLを発効しています。 またメインASPではDBから時間を取得するだけのSQLを発効しています。 本来メインASPはバッチASPを呼び出すのみでバッチASPが重い処理を行っても依存しないと思っていますがどのようにすれば、依存しないようになるのでしょうか? 説明が難しいのですが、よろしくお願いします。

  • ADOでのSQLついて

    こんにちは! ASPでADOを利用してSQLを使っていまして、 任意の文字列検索をやりたいのですが、うまくヒットしません。 AccessでのSQLで、likeを使った ((フィールド名) Like "*文字列*")を使いたいのですが、 ASPではアスタリスク*がうまく認識されていないような気がします。 うまくやる方法は無いのでしょうか?

  • EXCEL VBAで複数人でのADO接続について

    環境はEXCEL2003です。 EXCELからCSVファイルを読込み、 それに対して処理を加え一覧表示するVBAを組んでいます。 CSVファイルの読込みにはADOを使用しており、 指定しているプロバイダはMicrosoft.Jet.OLEDB.4.0、 複数の人が同時に実行する可能性があるプログラムです。 ここで問題なのですが、 Dim con As New ADODB.Connection '入力ファイル接続用コネクション Dim connectionString As String 'コネクション接続用文字列 (中略) Set rs = con.Execute(SQL) とSQLを実行する際に、 複数のユーザが同時に実行すると、 一人を除いて添付のようなエラーが発生してしまいます。 調べてみたところ、 http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200401/04010032.txt こちらのエラーが近いのかと思いますが、 >JET経由でのADOでDBをオープンする場合、必ず、1ファイル >1コネクションで行って下さい。 と記載があるところを見ると、 CSV読み込みの場合も複数人での接続は無理なのかな…と思いつつあります。 ※ファイルは、読取り専用で開ければ良いのですが、  ファイルに読取り専用属性を設定したりしても効果ありませんでした。   ですが一つのデータファイルを、複数の人が利用する、 というのは普通にある処理だと思うのですが、 こういうのはどうしたら良いのでしょうか? 根本的にADO接続でいければ万事解決ですが、 この手の処理方法で上手い方法があれば教えてください。 (普通のCSV読取りではなくADOを使っているのは、 SQLの条件指定で処理がかなり簡略化出来る仕様が背景にあります。)

  • i-modeサイト内でASPのセッション変数を使いたい

    i-mode対応サイトをASP(ActiveServerPages)で作成しています。 セッション変数がページを変えると引き継がれないようなのですが、ページを切り替えても変数を引き継ぐ良い案はないでしょうか? formのpost/getやhidden以外の方法はないのでしょうか? みなさまよろしくお願いします。

  • サーバー上の全セッション変数を取得する方法

    お世話になります。 ASPでは、各クライアントで使用する変数をセッション変数に保管することができます。 セッション変数は、サーバーのメモリ上で保管されているというそうです。 サーバー上で、現在保持しているセッション変数を、全て取得(表示)したいのですが、 いろいろ調べましたが、わかりませんでした。 ご存知の方アドバイスいただけないでしょうか? よろしくお願いいたします。 ちなみに、クライアントで、 下記を実行すると、そのクライアントのセッション変数は取得できます。 Dim Key For Each Key in Session.Contents Response.Write Key & "=" & Session.Contents(Key) & "<BR>" Next

専門家に質問してみよう