我们在使用ASP
内置的ADO组件进行数据库编程时,通常是在脚本的开头打开一个连接,并在脚本的最后关闭它,但是就较大脚本而言,在多数情况下连接打开的时间要比它需要打开的时间长得多。因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称为断开的记录集。
下面我们就通过一个实例来说明这种技术的使用方法(NorthWind.mdb是Microsoft
Access97自带的一个数据库,文件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
'创建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 '关闭连接 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>准备新增或插入记录: "
'若需要更新数据库, 则要重新建立连接
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>" %> 15a
|