在ASP中使用断开的记录集
2018-09-06 10:44
我们在使用ASP 内置的ADO组件进行数据库编程时,通常是在脚本的开头打开一个连接,并在脚本的最后关闭它,但是就较大脚本而言,在多数情况下连接打开的时间要比它需要打开的时间长得多。因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称为断开的记录集。
下面我们就通过一个实例来说明这种技术的使用方法(NorthWind.mdb是Microsoft Access自带的一个数据库,文件可在C:Program FilesCommon FilesSystemADO下找到):
<% @LANGUAGE = VBScript %>
<%
Response.Expires = 0
Dim Cnn,objRS, strOut, strQ, strC
StrC= Driver={Microsoft Access Driver (*.mdb)}; DBQ= Server.MapPath(asp24)
NorthWind.mdb;
建立连接
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
%>