«
ASP程序中使用断开的数据记录集

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  我们在使用ASP 内置的ADO组件进行数据库编程时,通常是在脚本的开头打开一个连接,并在脚本的最后关闭它,但是就较大脚本而言,在多数情况下连接打开的时间要比它需要打开的时间长得多。因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称为断开的记录集。</p><p>  下面我们就通过一个实例来说明这种技术的使用方法(NorthWind.mdb是Microsoft Access97自带的一个数据库,文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):</p><p>  <code><% @LANGUAGE = VBScript %><br /><!--#include file="adovbs.inc"--><br /><%<br /> Response.Expires = 0<br /> Dim Cnn,objRS, strOut, strQ, strC<br /> StrC= "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\asp24") & "\NorthWind.mdb;"<br /> '建立连接<br /> Set Cnn = Server.CreateObject("ADODB.Connection")<br /> Cnn.Open StrC<br /> '创建Recordset对象<br /> Set objRS = Server.CreateObject("ADODB.Recordset")<br /> objRS.CursorLocation =adUseClient<br /> objRS.CursorType = adOpenStatic<br /> objRS.LockType = adLockOptimistic<br /> strQ = "SELECT 运货商ID, 公司名称, 电话 FROM 运货商 "<br /> objRS.Open strQ, Cnn, , , adCmdText<br /> Set objRS.ActiveConnection = Nothing   '断开记录集<br /> Cnn.Close                 '关闭连接<br /> Set Cnn = Nothing<br /> Response.Write "<HTML><BODY>"<br /> '下面使用断开的记录集<br /> Do While (Not objRS.EOF)<br />  strOut = objRS("运货商ID") & ", " & objRS("公司名称") & ", " & objRS("电话")<br />  Response.Write Server.HTMLEncode(strOut) & "<BR>"<br />  objRS.MoveNext<br /> Loop<br /> Response.Write "<BR>准备新增或插入记录: "<br /> '若需要更新数据库, 则要重新建立连接<br /> Set Cnn = Server.CreateObject("ADODB.Connection")<br /> Cnn.Open strC<br /> Set objRS.ActiveConnection = Cnn<br /> objRS.Filter = "公司名称 = '吴丰'"<br /> If objRS.EOF Then<br />  objRS.AddNew<br />  objRS("公司名称") = "吴丰"<br />  objRS("电话") = "571-7227298"<br />  objRS.Update<br />  Response.Write "符合该条件的记录不存在, 则新增.<BR>"<br /> Else<br />  objRS("电话") = "571-7227071"<br />  Response.Write "符合该条件的记录存在, 则 Update.<BR>"<br />  objRS.Update<br /> End If<br /> Set objRS.ActiveConnection = Nothing<br /> Cnn.close<br /> Set Cnn = Nothing<br /> objRS.Close<br /> Set objRS = Nothing<br /> Response.Write "</BODY></HTML>"<br />%></code></p>