ASP 講義シリーズ (16) データベースへのアクセス
著者:Eve Cole
更新時間:2009-05-30 19:58:46
ActiveX Data Objects (ADO) は、Web ページにデータベース アクセスを追加するための使いやすく拡張可能なテクノロジです。 ADO を使用すると、Open Database Connectivity (ODBC) 準拠のデータベースや OLE DB 準拠のデータ ソースに接続するためのコンパクトで簡潔なスクリプトを作成できます。データベース接続についてある程度の知識があるスクリプト作成者であれば、ADO コマンド ステートメントは複雑ではなく、簡単に習得できることがわかるでしょう。同様に、経験豊富なデータベース プログラマーであれば、ADO の高度な言語非依存性とクエリ処理機能を高く評価するでしょう。
ODBC DSN ファイルの作成 データベース スクリプトを作成する前に、ADO がデータベースを検索、識別し、通信する方法を提供する必要があります。データベース ドライバーは、データ ソース名 (DSN) を使用して特定の ODBC 準拠データベースを見つけて識別し、Web アプリケーションからデータベースに情報を渡します。通常、DSN にはデータベース構成、ユーザー セキュリティ、および場所情報が含まれており、Windows NT レジストリ キー内のテーブルまたはテキスト ファイルとして取得できます。
ODBC を使用すると、作成する DSN のタイプ (ユーザー、システム、またはファイル) を選択できます。ユーザーおよびシステム DSN は Windows NT レジストリに保存されます。システム DSN では、特定のサーバーにログオンしているすべてのユーザーがデータベースにアクセスできますが、ユーザー DSN は、適切なセキュリティ資格情報を使用してデータベースへの接続を特定のユーザーに制限します。ファイル DSN は、テキスト ファイルからテーブルを取得するために使用され、複数のユーザーにアクセスを提供し、DSN ファイルをコピーすることであるサーバーから別のサーバーに簡単に転送できます。これらの理由から、このトピックの例ではファイル DSN を使用します。
Windows の [スタート] メニューから [コントロール パネル] を開くと、DSN ベースのファイルを作成できます。 ODBC アイコンをダブルクリックし、[ファイル DSN] プロパティ ページを選択して、[追加] をクリックし、データベース ドライバーを選択して、[次へ] をクリックします。以下の手順に従って、データベース ソフトウェアの DSN を構成します。
Microsoft AccessデータベースのファイルDSNの構成
[新しいデータ ソースの作成] ダイアログ ボックスで、リスト ボックスから [Microsoft Access Driver] を選択し、[次へ] をクリックします。
DSN ファイル名を入力し、「次へ」をクリックします。
「完了」をクリックしてデータソースを作成します。
[ODBC Microsoft Access 97 セットアップ] ダイアログ ボックスで、[選択] をクリックします。 Microsoft Access データベース ファイル (*.mdb) を選択し、[OK] をクリックします。
注 パフォーマンスと信頼性の理由から、10 人を超えるユーザーが同時にアクセスできる必要がある Web アプリケーションによって駆動されるデータを構成するには、クライアント サーバー データベース エンジンを使用することを強くお勧めします。 ASP は ODBC 準拠のデータベースを使用できますが、Microsoft SQL Server、Oracle などのクライアント サーバー データベースで使用できるように設計され、厳密にテストされています。
ASP は、共有ファイル データベース (Microsoft Access や FoxPro など) を有効なデータ ソースとしてサポートします。 ASP ドキュメントの一部の例では共有ファイル データベースを使用していますが、このようなデータベース エンジンは開発または限定的な展開シナリオにのみ使用することをお勧めします。共有ファイル データベースは、需要の高い高品質な Web アプリケーションに対応するクライアント サーバー データベースには適さない場合があります。
SQL Server データベース ファイルの DSN を構成する
注 データベースがリモート サーバー上にある場合は、追加の構成情報についてサーバー管理者に問い合わせてください。次の手順では SQL Server の ODBC の既定の設定が使用されているため、ハードウェア構成には適用されない可能性があります。
[新しいデータ ソースの作成] ダイアログ ボックスで、リスト ボックスから [SQL Server] を選択し、[次へ] をクリックします。
DSN ファイルの名前を入力し、「次へ」をクリックします。
「完了」をクリックしてデータソースを作成します。
SQL サービス プログラムを実行しているサーバーの名前、ログイン ID、およびパスワードを入力します。
[SQL Server の新しいデータ ソースの作成] ダイアログ ボックスの [サーバー] リスト ボックスに SQL Server データベースを含むサーバーの名前を入力し、[次へ] をクリックします。
ログインIDの確認方法を選択します。
SQLサーバー認証を選択した場合は、ログインIDとパスワードを入力し、「次へ」をクリックします。
[SQL Server の新しいデータ ソースの作成] ダイアログ ボックスで、既定のデータベース、ストアド プロシージャ設定のドライバー、および ANSI ID を設定し、[次へ] をクリックします。 (詳細については、「ヘルプ」をクリックしてください。)
ダイアログ ボックス ([SQL Server の新しいデータ ソースの作成] とも呼ばれます) で、文字変換方法を選択し、[次へ] をクリックします。 (詳細については、「ヘルプ」をクリックしてください。)
次のダイアログ ボックス (「SQL Server の新しいデータ ソースの作成」とも呼ばれます) で、ログイン設定を選択します。
注 通常、ログはデータベース アクセスの問題をデバッグするためにのみ使用できます。
[ODBC Microsoft SQL Server セットアップ] ダイアログ ボックスで、[データ ソースのテスト] をクリックします。 DSN が正しく作成された場合は、[テスト結果] ダイアログ ボックスにテストが正常に完了したことが示されます。
SQL サーバー接続とセキュリティ情報 リモート SQL サーバー データベースに接続する ASP データベース アプリケーションを開発している場合は、次の問題を考慮する必要があります。
接続オプション - リモート SQL Server データベースにアクセスするために、TCP/IP ソケットと名前付きパイプのどちらかを選択できます。名前付きパイプを使用する場合、接続を確立する前にデータベース ユーザーが Windows NT に対して認証される必要があるため、適切な SQL Server アクセス ID を持っていても、コンピュータ上に Windows NT ユーザー アカウントを持たないユーザーは、名前付きパイプへのアクセスを拒否される可能性があります。別の方法として、TCP/IP ソケットを使用した接続は、名前付きパイプを使用して中間コンピュータを経由せずにデータベース サーバーに直接接続できます。 TCP/IP ソケット接続を使用してデータベース サーバーに直接接続できるため、ユーザーは Windows NT で認証しなくても SQL Server 認証を通じてアクセスできます。
注 TCP/IP ソケットを使用すると、リモート データベースに接続するときのパフォーマンスが向上します。
セキュリティ - SQL Server の統合セキュリティ機能または混合セキュリティ機能を使用しており、SQL Server データベースがリモート サーバー上にある場合は、Windows NT の要求/応答確認を使用できません。つまり、Windows NT 要求/応答 ID をリモート コンピュータに転送することはできませんが、ユーザーのユーザー名とパスワード情報に基づく基本認証のみを使用できます。
このトピックの詳細については、http://www.microsoft.com/sqlsupport/ を参照してください。
Microsoft SQL Server テクニカル サポートのホームページ。
Oracle データベース ファイルの DSN を構成する
まず、DSN を作成するコンピュータに Oracle ユーザー ソフトウェアが正しくインストールされていることを確認します。詳細については、サーバー管理者に問い合わせるか、データベース ソフトウェアのマニュアルを参照してください。
[新しいデータ ソースの作成] ダイアログ ボックスで、リスト ボックスから [Microsoft ODBC for Oracle] を選択し、[次へ] をクリックします。
DSN ファイルの名前を入力し、「次へ」をクリックします。
「完了」をクリックしてデータソースを作成します。
ユーザー名、パスワード、サーバー名を入力し、「OK」をクリックします。
注 DSN ファイルの拡張子は .dsn で、ProgramsCommon FilesODBCData Sources ディレクトリにあります。
DSN ファイルの作成の詳細については、Microsoft ODBC Web サイト http://microsoft.com/odbc/ を参照してください。
データベースへの接続 データベース情報にアクセスする最初のステップは、データベース ソースへの接続を確立することです。 ADO は、アプリケーションと ODBC データベース間の接続を確立および管理するために使用できる Connection オブジェクトを提供します。 Connection オブジェクトには、データベース接続を開いたり閉じたり、情報を更新するためのクエリ要求を行うために使用できるさまざまなプロパティとメソッドがあります。
データベース接続を確立するには、まず Connection オブジェクトのインスタンスを作成します。たとえば、次のスクリプトは Connection オブジェクトを作成し、データベース接続を開きます。
<%
'接続オブジェクトを作成する
Set cn = Server.CreateObject("ADODB.Connection")
'接続を開きます。文字列は DSN を参照します。
cn.「FILEDSN=MyDatabase.dsn」を開く
%>
注 DSN 文字列には、等号 (=) の前後にスペースを含めることはできません。
この場合、Connection オブジェクトの Open メソッドは、データベースの場所と構成情報を含む DSN ベースのファイルを参照します。 DSN を参照せずに、プロバイダー、データ ソース、ユーザー ID、およびパスワードを明示的に参照することもできます。
Connection オブジェクトを使用したクエリの実行 Connection オブジェクトの Execute メソッドを使用すると、構造化照会言語 (SQL) クエリをデータベース ソースに発行し、結果を取得できます。 SQL はデータベースと通信するための業界標準言語であり、情報を取得および更新するためのコマンドが多数あります。
次のスクリプトは、Connection オブジェクトの Execute メソッドを使用して、SQL INSERT コマンドを使用してテーブルにクエリを発行し、特定のデータベース テーブルにデータを挿入します。次の例では、スクリプトは、Customers という名前のデータベース テーブルに Jose Lugo という名前を挿入します。
<%
'ファイルベースの DSN を定義する
strDSN = "FILEDSN=MyDatabase.dsn"
'Connection オブジェクトをインスタンス化し、データベース接続を開きます
Set cn = Server.CreateObject("ADODB.Connection")
cn.strDSNを開く
'SQL SELECT ステートメントを定義します
strSQL = "顧客 (名、姓) の値に挿入 ('Jose','Lugo')"
'Execute メソッドを使用してデータベースに SQL クエリを発行します
cn.Execute(strSQL)
%>
DSN パス文字列に基づくファイルには、等号 (=) の前後にスペースを含めないでください。
SQL INSERT コマンドに加えて、SQL UPDATE および DELETE コマンドを使用してデータベース情報を変更および削除することもできます。
SQL UPDATE コマンドを使用すると、データベース テーブル内の各項目の値を変更できます。次のスクリプトは、UPDATE コマンドを使用して、LastName フィールドに姓 Smith から Jeff が含まれる Customers テーブルの各レコードの FirstName フィールドを変更します。
<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.「FILEDSN=MyDatabase.dsn」を開く
cn.Execute "UPDATE Customers SET FirstName = 'Jeff' WHERE LastName = 'Smith' "
%>
データベーステーブルから特定のレコードを削除するには、SQL DELETE コマンドを使用します。次のスクリプトは、Customers テーブルから姓が Smith であるすべての行を削除します。
<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.「FILEDSN=MyDatabase.dsn」を開く
cn.Execute "DELETE FROM Customers WHERE LastName = 'Smith'"
%>
注 SQL DELETE コマンドを使用する場合は注意が必要です。 WHERE 句を指定せずに DELETE コマンドを使用すると、テーブル内のすべての行が削除されます。削除する正確な行を指定するには、SQL WHERE 句を必ず含めてください。
Recordset オブジェクトを使用した結果の処理 Connection オブジェクトにより、データベースへの接続とクエリのタスクが簡素化されますが、Connection オブジェクトには依然として多くの欠点があります。具体的には、データベース情報を取得して表示する Connection オブジェクトをスクリプトの作成に使用することはできません。クエリを使用して変更を実装する前に、データベースにどのような変更を加えるかを正確に把握する必要があります。
データの取得、結果の確認、データベースの変更のために、ADO は Recordset オブジェクトを提供します。その名前が示すように、Recordset オブジェクトには、クエリの制約に基づいて一連のデータベース行、つまり「レコード」を取得して表示するために使用できる機能が多数あります。 Recordset オブジェクトは、クエリによって返されたレコードの場所を保持するため、結果を一度に 1 つずつ確認することができます。
Recordset オブジェクトの PointerType プロパティの設定に応じて、レコードをスクロールおよび更新できます。データベース ポインターを使用すると、一連のレコード内の特定の項目を見つけることができます。ポインタは、レコードを取得して検査し、それらのレコードに基づいて操作を実行するためにも使用されます。 Recordset オブジェクトには、ポインターの動作を正確に制御できるプロパティがあり、結果の検査と更新の機能が向上します。たとえば、CursorType プロパティと CursorLocation プロパティを使用して、ポインターのタイプを設定し、結果をクライアント アプリケーションに返し (通常、結果はデータベース サーバーに保存されます)、他のユーザーがデータベースに加えた最後の変更を表示できます。 。
レコードの取得 正常に動作するデータベース アプリケーションは、Connection オブジェクトを使用してリンクを確立し、Recordset オブジェクトを使用して返されたデータを処理します。 2 つのオブジェクトの特定の機能を「調整」することにより、ほぼすべてのデータ処理タスクを実行できるデータベース アプリケーションを開発できます。たとえば、次のサーバー側スクリプトは Recordset オブジェクトを使用して SQL SELECT コマンドを実行します。 SELECT コマンドは、クエリ制限に基づいて一連の情報を取得します。クエリには、クエリの範囲を狭めるために使用される SQL WHERE 句も含まれています。この例では、WHERE 句により、Customers データベース テーブル内の姓 Smith を含むすべてのレコードにクエリが制限されます。
<%
'データソースとの接続を確立します
strDSN = "FILEDSN=MyDatabase.dsn"
Set cn = Server.CreateObject("ADODB.Connection")
cn.strDSNを開く
' Recordset オブジェクトをインスタンス化する
Set rsCustomers = Server.CreateObject("ADODB.Recordset")
'Open メソッドを使用してレコードセットを開きます
' そして、Connection オブジェクトによって確立された接続を使用します
strSQL = "顧客から名、姓を選択 WHERE 姓 = 'スミス' "
rsCustomers.Open strSQL、cn
'レコードセットを循環して結果を表示します
' そして、MoveNext メソッドでレコード位置をインクリメントします
objFirstName = rsCustomers("FirstName") を設定します。
objLastName = rsCustomers("LastName") を設定します。
rsCustomers.EOF まで実行します
Response.Write objFirstName & " " & objLastName & "<BR>"
rsCustomers.MoveNext
ループ
%>
前の例では、データベース接続を確立するために Connection オブジェクトが使用され、データベースから結果を取得するために Recordset オブジェクトがその接続を使用したことに注意してください。この方法は、データベースへのリンクを確立する方法を正確に設定する必要がある場合に役立ちます。たとえば、接続の試行が失敗するまでの待機時間を指定する必要がある場合は、Connection オブジェクトを使用してプロパティを設定する必要があります。ただし、ADO の既定の接続プロパティを使用して接続のみを確立したい場合は、Recordset オブジェクトの Open メソッドを使用してリンクを確立する必要があります。
<%
strDSN = "FILEDSN=MyDatabase.dsn"
strSQL = "顧客から名、姓を選択 WHERE 姓 = 'スミス' "
Set rsCustomers = Server.CreateObject("ADODB.Recordset")
'Open メソッドを使用して接続を開きます
' そして Connection オブジェクトによって確立された接続を使用します
rsCustomers.Open strSQL、strDSN
'レコードセットを循環し、結果を表示し、
' そして、MoveNext メソッドでレコード位置をインクリメントします
objFirstName = rsCustomers("FirstName") を設定します。
objLastName = rsCustomers("LastName") を設定します。
rsCustomers.EOF まで実行します
Response.Write objFirstName & " " & objLastName & "<BR>"
rsCustomers.MoveNext
ループ
%>
Recordset オブジェクトの Open メソッドを使用して接続を確立する場合、接続のセキュリティを確保するために Connection オブジェクトを使用する必要があります。
Command オブジェクトを使用してクエリを改善する ADO Command オブジェクトを使用すると、Connection オブジェクトや Recordset オブジェクトと同じようにクエリを実行できます。唯一の違いは、Command オブジェクトを使用すると、データベース上でクエリを準備、コンパイル、反復できることです。別の値セットを使用してソースを問い合わせます。この方法でクエリをコンパイルする利点は、既存のクエリに対して変更されたリクエストを繰り返し発行するのに必要な時間を最小限に抑えられることです。あるいは、クエリの変数部分のオプションを使用して、実行前に SQL クエリを部分的に未定義のままにすることもできます。
Command オブジェクトのパラメータ コレクションにより、クエリが再発行されるたびにクエリを再構築する手間が省けます。たとえば、在庫ベースの Web システムで供給情報と価格情報を定期的に更新する必要がある場合は、次のようにクエリを事前定義できます。
<%
'ConnectionオブジェクトCommandオブジェクトを使用して接続を開きます
'接続を確立するための Open メソッドがありません
strDSN = "FILEDSN=MyDatabase.dsn"
Set cn = Server.CreateObject("ADODB.Connection")
cn.strDSNを開く
'コマンド オブジェクトをインスタンス化します。ActiveConnection プロパティを使用してアタッチします。
'コマンドオブジェクトへの接続
Set cm= Server.CreateObject("ADODB.Command")
cm.ActiveConnection = cn を設定します
'SQLクエリを定義する
cm.CommandText = "在庫 (材料、数量) の値に挿入 (?, ?)"
'CommandText で指定されたクエリの準備済み (またはコンパイル済み) バージョンを保存します
'Command オブジェクトの最初の実行前のプロパティ。
cm.Prepared = True
'クエリパラメータ設定情報の定義
cm.Parameters.Append cm.CreateParameter("素材の種類",200, ,255 )
cm.Parameters.Append cm.CreateParameter("数量",200, ,255 )
'最初の挿入を定義して実行します
cm("material_type") = "電球"
cm("数量") = "40"
cm.実行
' 2 番目の挿入を定義して実行します
cm("material_type") = "ヒューズ"
cm("数量") = "600"
cm.実行
%>
上記の例を確認すると、スクリプトがクエリを再定義してデータベース ソースに再送信することなく、異なる値を使用して SQL クエリを繰り返し構築して発行していることがわかります。 Command オブジェクトを使用してクエリをコンパイルすると、SQL クエリによって発生する文字列変数とテーブル変数のマージの問題も回避されます。特に、文字列、日付、時刻変数の型の定義に関連する問題は、Command オブジェクトの Parameter コレクションを使用することで回避できます。たとえば、SQL クエリ値に「'」が含まれていると、クエリが失敗する可能性があります。
strSQL = "顧客 (名、姓) の値に挿入 ('ロバート'、'オハラ')"
姓の O'Hara には「'」が含まれており、SQL VALUES キーワードでデータを表すために使用される「'」と競合することに注意してください。この種の問題は、クエリ値をコマンド オブジェクト パラメーターとしてバインドすることで回避できます。
HTML テーブルとデータベースの組み合わせ HTML テーブルを含む Web ページにアクセスすると、ユーザーはデータベースにリモートでクエリを実行し、特定の情報を取得できます。 ADO を使用すると、ユーザー テーブル情報を収集し、カスタム データベース クエリを作成し、ユーザーに情報を返すための非常に単純なスクリプトを作成できます。 ASP Request オブジェクトを使用すると、HTML テーブルに入力された情報を取得し、この情報を SQL ステートメントに組み込むことができます。たとえば、次のスクリプト モジュールは、HTML テーブルによって提供される情報をテーブルに挿入します。このスクリプトは、Request オブジェクトの Form コレクションを使用してユーザー情報を収集します。
<%
'Connection オブジェクトを使用して接続を開きます。
'接続を確立するための Open メソッドがありません
strDSN = "FILEDSN=MyDatabase.dsn"
Set cn = Server.CreateObject("ADODB.Connection")
cn.strDSNを開く
'コマンドオブジェクトをインスタンス化します
' そして ActiveConnection プロパティを使用してアタッチします
'コマンドオブジェクトへの接続
Set cm= Server.CreateObject("ADODB.Command")
cm.ActiveConnection = cn を設定します
'SQLクエリを定義する
cm.CommandText = "MySeedsTable (タイプ) の値に挿入 (?)"
'クエリパラメータ設定情報の定義
cm.Parameters.Append cm.CreateParameter("タイプ",200, ,255 )
'挿入を定義して実行
cm("タイプ") = リクエスト("シードタイプ")
cm.実行
%>
データベース接続の管理 何千人もの顧客にサービスを提供するオンライン ショッピング アプリケーションなど、堅牢な Web データベース アプリケーションを設計する際の最大の課題は、データベース接続を適切に管理することです。情報が転送されていない場合でも、データベース接続を開いて維持すると、データベース サーバーのリソースが大幅に消費され、接続の問題が発生する可能性があります。適切に設計された Web データベース アプリケーションは、データベース接続を再利用し、ネットワークの輻輳による遅延を補うことができます。
接続タイムアウトの原因 アクティビティが突然増加すると、データベース サーバーが非常に扱いにくくなり、データベース接続の確立にかかる時間が大幅に長くなる可能性があります。その結果、過剰な接続遅延によりデータベースのパフォーマンスが低下します。
Connection オブジェクトの ConnectionTimeout を使用すると、アプリケーションが接続の試行を中止してエラー メッセージを発行するまでの待機時間を制限できます。たとえば、次のスクリプトは、接続試行をキャンセルする前に 20 秒待機するように ConnectionTimeout プロパティを設定します。
Set cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionTimeout = 20
cn.「FILEDSN=MyDatabase.dsn」を開く
デフォルトの ConnectionTimeout プロパティは 30 秒です。
注 ConnectionTimeout プロパティをデータベース アプリケーションに組み込む前に、接続プロバイダーとデータ ソースがそのプロパティをサポートしていることを確認してください。
共有接続 Web データベース アプリケーションは、データベース接続を頻繁に確立したり切断したりすると、データベース サーバーのパフォーマンスを低下させる可能性があります。 ASP は、ODBC 3.5 の共有機能を使用した接続の効率的な管理をサポートします。接続共有は、オープンなデータベース接続を維持し、さまざまなユーザー間でのその接続の共有を管理して、パフォーマンスを維持し、アイドル状態の接続の数を減らします。接続リクエストごとに、接続プールはまずプール内にアイドル状態の接続があるかどうかを判断します。接続プールが存在する場合、データベースへの新しい接続を確立するのではなく、接続を返します。
ODBC ドライバを接続共有に参加させる場合は、データベース ドライバを構成し、Windows NT レジストリでドライバの CPTimeout プロパティを設定する必要があります。 ODBC が切断されると、接続は切断されずにプールされます。 CPTimeout プロパティは、接続が接続プールに保持される時間を決定します。接続が CPTimeout 設定よりも長くプール内に残っている場合、接続は閉じられ、プールから削除されます。 CPTimeout のデフォルト値は 60 秒です。
次のようにレジストリ キー セットを作成し、CPTimeout プロパティを選択的に設定することで、特定の ODBC データベース ドライバーの接続プーリングを有効にできます。
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INIドライバー名CPTimeout = タイムアウト
(REG_SZ、単位は秒)
たとえば、次のキーは、SQL Server ドライバーの接続プールのタイムアウト設定を 180 秒 (3 分) に設定します。
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INISQL ServerCPTimeout = 180
注: デフォルトでは、Web サーバーは CPTimeout を 60 秒に設定することで SQL Server の接続プールをアクティブにします。
クロスページ接続の使用 ASP の Application オブジェクトに接続を保存することでクロスページ接続を再利用できますが、接続を常に開いておく必要はなく、接続プーリングの利点を最大限に活用できません。多くのユーザーが同じ ASP データベース アプリケーションに接続する必要がある場合、ASP アプリケーション オブジェクトにクロスページ接続文字列を配置してデータベース接続を再利用するのが良い方法です。たとえば、次のスクリプトに示すように、Global.asa ファイルの Application_OnStart イベント プロシージャで接続文字列を指定できます。
アプリケーションロック
Application("ConnectionString") = "FILEDSN=MyDatabase.dsn"
アプリケーションのロック解除
次に、データベースにアクセスする各 ASP ファイルに次のように記述します。
<OBJECT RUNAT=サーバー ID=cn PROGID="ADODB.Connection"> </OBJECT>
接続オブジェクトのインスタンスを作成するには、次のスクリプトを使用します。
cn.Open Application("ConnectionString")
開いている接続の場合は、ページの最後に次のスクリプトを記述して接続を閉じることができます。
cn.閉じる
1 人のユーザーがクロスページ接続を再利用する必要がある状況では、Application オブジェクトではなく Session オブジェクト接続を使用することをお勧めします。
接続を閉じる 接続プールを有効に活用したい場合は、できるだけ早くデータベース接続を閉じる必要があります。デフォルトでは、スクリプトの実行が終了すると接続が終了します。必要がなくなったときに接続を閉じると、データベース サーバーへの要求が軽減され、他のユーザーが接続を利用できるようになります。
Connection オブジェクトの Close メソッドを使用して、Connection オブジェクトとデータベース間の接続を終了できます。次のスクリプトは接続を開いてから閉じます。
<% strDSN = "FILEDSN=MyDatabase.dsn"
Set cn = Server.CreateObject("ADODB.Connection")
cn.開く
cn.閉じる
%>