[摘要]在ASP中使用断开的记录集   我们在使用ASP 内置的ADO组件进行数据库编程时,通常是在脚本的开头打开一个连接,并在脚本的最后关闭它,但是就较大脚本而言,在多数情况下连接打开的时间要比它需要打开...
在ASP中使用断开的记录集 
  我们在使用ASP 内置的ADO组件进行数据库编程时,通常是在脚本的开头打开一个连接,并在脚本的最后关闭它,但是就较大脚本而言,在多数情况下连接打开的时间要比它需要打开的时间长得多。因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称为断开的记录集。 
  下面我们就通过一个实例来说明这种技术的使用方法(NorthWind.mdb是Microsoft Access97自带的一个数据库,文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到): 
<% @LANGUAGE = VBScript %> 
<% 
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 "" 
'下面使用断开的记录集 
Do While (Not objRS.EOF) 
strOut = objRS("运货商ID") & ", " & objRS("公司名称") & ", " & objRS("电话") 
Response.Write Server.HTMLEncode(strOut) & "
" 
objRS.MoveNext 
Loop 
Response.Write "
准备新增或插入记录: " 
'若需要更新数据库, 则要重新建立连接 
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 "符合该条件的记录不存在, 则新增.
" 
Else 
objRS("电话") = "571-7227071" 
Response.Write "符合该条件的记录存在, 则 Update.
" 
objRS.Update 
End If 
Set objRS.ActiveConnection = Nothing 
Cnn.close 
Set Cnn = Nothing 
objRS.Close 
Set objRS = Nothing 
Response.Write "" 
%> 
  由于篇幅所限,笔者点到为止,有兴趣可去我的主页 http://wuf.bentium.net 下载更多的源程序,另外也可参考VB6.0的MSDN文档中有关ADO的部分。   
关键词:在ASP中运用断开的记录集