ASP程序中使用斷開的數(shù)據(jù)記錄集

字號:

我們在使用ASP 內(nèi)置的ADO組件進行數(shù)據(jù)庫編程時,通常是在腳本的開頭打開一個連接,并在腳本的最后關(guān)閉它,但是就較大腳本而言,在多數(shù)情況下連接打開的時間要比它需要打開的時間長得多。因此為了節(jié)省服務(wù)器資源,應(yīng)該盡可能關(guān)閉連接以釋放連接所占有的資源,這種關(guān)閉記錄集的連接而不關(guān)閉記錄集的技術(shù)叫做斷開記錄集,這個記錄集本身則稱為斷開的記錄集。
    下面我們就通過一個實例來說明這種技術(shù)的使用方法(NorthWind.mdb是Microsoft Access97自帶的一個數(shù)據(jù)庫,文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):
    <% @LANGUAGE = VBScript %>
    <!--#include file="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
    '創(chuàng)建Recordset對象
    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.CursorLocation =adUseClient
    objRS.CursorType = adOpenStatic
    objRS.LockType = adLockOptimistic
    strQ = "SELECT 運貨商ID, 公司名稱, 電話 FROM 運貨商 "
    objRS.Open strQ, Cnn, , , adCmdText
    Set objRS.ActiveConnection = Nothing   '斷開記錄集
    Cnn.Close                 '關(guān)閉連接
    Set Cnn = Nothing
    Response.Write "<HTML><BODY>"
    '下面使用斷開的記錄集
    Do While (Not objRS.EOF)
    strOut = objRS( "運貨商ID") & ", " & objRS("公司名稱") & ", " & objRS("電話")
    Response.Write Server.HTMLEncode(strOut) & "<BR>"
    objRS.MoveNext
    Loop
    Response.Write "<BR>準備新增或插入記錄: "
    '若需要更新數(shù)據(jù)庫, 則要重新建立連接
    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( "電話") = "571-7227071"
    Response.Write "符合該條件的記錄存在, 則 Update.<BR>"
    objRS.Update
    End If
    Set objRS.ActiveConnection = Nothing
    Cnn.close
    Set Cnn = Nothing
    objRS.Close
    Set objRS = Nothing
    Response.Write "</BODY></HTML>"
    %>