ASP程序中使用斷開的數(shù)據(jù)記錄集的代碼
更新時(shí)間:2012年08月20日 21:05:15 作者:
我們?cè)谑褂肁SP 內(nèi)置的ADO組件進(jìn)行數(shù)據(jù)庫編程時(shí),通常是在腳本的開頭打開一個(gè)連接,并在腳本的最后關(guān)閉它,但是就較大腳本而言,在多數(shù)情況下連接打開的時(shí)間要比它需要打開的時(shí)間長得多。
因此為了節(jié)省服務(wù)器資源,應(yīng)該盡可能關(guān)閉連接以釋放連接所占有的資源,這種關(guān)閉記錄集的連接而不關(guān)閉記錄集的技術(shù)叫做斷開記錄集,這個(gè)記錄集本身則稱為斷開的記錄集。
下面我們就通過一個(gè)實(shí)例來說明這種技術(shù)的使用方法(NorthWind.mdb是Microsoft Access97自帶的一個(gè)數(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對(duì)象
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorLocation =adUseClient
objRS.CursorType = adOpenStatic
objRS.LockType = adLockOptimistic
strQ = "SELECT 運(yùn)貨商ID, 公司名稱, 電話 FROM 運(yùn)貨商 "
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("運(yùn)貨商ID") & ", " & objRS("公司名稱") & ", " & objRS("電話")
Response.Write Server.HTMLEncode(strOut) & "<BR>"
objRS.MoveNext
Loop
Response.Write "<BR>準(zhǔn)備新增或插入記錄: "
'若需要更新數(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>"
%>
下面我們就通過一個(gè)實(shí)例來說明這種技術(shù)的使用方法(NorthWind.mdb是Microsoft Access97自帶的一個(gè)數(shù)據(jù)庫,文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):
復(fù)制代碼 代碼如下:
<% @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對(duì)象
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorLocation =adUseClient
objRS.CursorType = adOpenStatic
objRS.LockType = adLockOptimistic
strQ = "SELECT 運(yùn)貨商ID, 公司名稱, 電話 FROM 運(yùn)貨商 "
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("運(yùn)貨商ID") & ", " & objRS("公司名稱") & ", " & objRS("電話")
Response.Write Server.HTMLEncode(strOut) & "<BR>"
objRS.MoveNext
Loop
Response.Write "<BR>準(zhǔn)備新增或插入記錄: "
'若需要更新數(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>"
%>
相關(guān)文章
推薦的用Asp實(shí)現(xiàn)屏蔽IP地址訪問的代碼
推薦的用Asp實(shí)現(xiàn)屏蔽IP地址訪問的代碼...2007-08-08ASP保存遠(yuǎn)程圖片到本地 同時(shí)取得第一張圖片并創(chuàng)建縮略圖的代碼
采集中 或者 在線添加文章中 都可以用到此功能2008-10-10關(guān)于ASP生成偽參數(shù)技巧 簡潔實(shí)用的偽(僞)參數(shù)
關(guān)于ASP生成偽參數(shù)技巧 簡潔實(shí)用的偽(僞)參數(shù)...2007-11-11實(shí)現(xiàn)UTF8轉(zhuǎn)換GB2312國標(biāo)碼的asp代碼
ASP來實(shí)現(xiàn)UTF8轉(zhuǎn)換GB2312國標(biāo)碼-GB2312轉(zhuǎn)UTF-8,需要的朋友可以參考下。2010-04-04