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