データベース プログラミングに ASP の組み込み ADO コンポーネントを使用する場合、通常はスクリプトの開始時に接続を開き、スクリプトの最後に接続を閉じます。ただし、大規模なスクリプトの場合、ほとんどの場合、接続を開く時間は通常よりも長くなります。それは開くのにはるかに時間がかかります。したがって、サーバー リソースを節約するには、接続をできるだけ閉じて、接続によって占有されているリソースを解放する必要があります。レコード セットを閉じずにレコード セットの接続を閉じるこの手法は、切断されたレコード セットと呼ばれます。レコード セット自体は、切断されたレコード セットと呼ばれます。
以下では、例を使用してこのテクノロジの使用法を説明します (NorthWind.mdb は Microsoft Access97 に付属のデータベースであり、ファイル adovbs.inc は C:Program FilesCommon FilesSystemADO にあります)。
< % @LANGUAGE= VBScript %>
<!--#includefile="adovbs.inc"-->
<%
Response.Expires = 0
Dim Cnn,objRS, strOut, strQ, strC
StrC= "Driver={Microsoft Access Driver ( * .mdb)}; DBQ=" & Server.MapPath("asp24") & "NorthWind.mdb;"
'接続を確立します
Set Cnn = Server.CreateObject("ADODB.Connection")
Cnn.Open StrC
'Create Recordset オブジェクト
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorLocation =adUseClient
objRS.CursorType = adOpenStatic
objRS.LockType = adLockOptimistic
strQ = "キャリア ID、会社名、電話番号をキャリアから選択"
objRS.Open strQ , Cnn, , , adCmdText
Set objRS.ActiveConnection = Nothing 'レコードセットを切断します
Cnn.Close '接続を切断します
Set Cnn = Nothing
Response.Write "<HTML><BODY>"
'切断されたレコードセットを使用します
Do While (NotobjRS .EOF) )
strOut = objRS("配送業者ID") & ", " & objRS("会社名") & ", " & objRS("電話番号")
Response.Write Server.HTMLEncode(strOut) & "<BR >"
objRS. MoveNext
Loop
Response.Write "<BR>レコードの追加または挿入の準備: "
'データベースを更新する必要がある場合は、接続を再確立してください
Set Cnn = Server.CreateObject("ADODB.Connection")
Cnn.Open strC
Set objRS .ActiveConnection = Cnn
objRS.Filter = "会社名 = '呉峰'"
If objRS.EOF then
objRS.AddNew
objRS("会社名") = "呉峰"
objRS("電話番号") = "571-7227298"
objRS .Update
Response.Write "条件を満たすレコードが存在しない場合は追加します。 <BR>"
Else
objRS("Telephone") = "571-7227071"
Response.Write "条件を満たすレコードが存在する場合<BR>"
objRS.Update
End If
Set objRS.ActiveConnection = Nothing
Cnn.close
Set Cnn = Nothing
objRS.Close
Set objRS = Nothing
Response.Write "</BODY></HTML>"
%>