使用断开的recordset的一个关键条件就是使用客户端临时表,即
指定rs.cursorlocation = aduseclient or 3,下面是一个完整
的例子:
demo-1.asp (在线演示:http://www.aspcn.com/demo/demo-1.asp)
————————————————————
<%@ language=vbscript %>
<%
# ——————————————————————-
———
# 程序描述:演示使用断开的记录集
# 程序设计:亚豪
# ——————————————————————-
———
on error resume next
dim adoconn,adors,sqlcmd,connectstring
#——————————————————————–
———
# 使用sql server的 dsn-less 方式连接数据库
#——————————————————————–
———
connectstring = "driver={sql server};" & _
"server=(local);" & _
"database=abc;" & _
"uid=sa;" & _
"pwd=123"
#——————————————————————–
———
# 创建对象实例,并初始化连接(connection)
#——————————————————————–
———
set adoconn = server.createobject("adodb.connection")
set adors = server.createobject("adodb.recordset")
adoconn.open connectstring
sqlcmd = "select * from bbs_user where ltrim(rtrim(id)) = w3org"
#——————————————————————–
———
# 使用客户端临时表打开并保存记录集,关键所在!
# 客户端是运行asp程序的主机,相对于数据库服务器而言
#——————————————————————–
———
adors.cursorlocation = 3 const aduseclient = 3
adors.open sqlcmd,adoconn,0,2
#——————————————————————–
———
# 没有发现记录,结束程序
#——————————————————————–
———
err.clear
if adors.eof and adors.bof then
adors.close
adoconn.close
set adors = nothing
set adoconn = nothing
response.write "用户没有发现!"
response.end
end if
#——————————————————————–
———
# 找到记录,显示原来的值后释放记录集的活动连接,之后关闭数据库连接
#——————————————————————–
———
response.write "原来的昵称是:" & trim(adors.fields("nickname").value)
& "<br>" & vbcrlf
set adors.activeconnection = nothing 释放rs的活动连接
adoconn.close
response.write "连接已经关闭!<br>" & vbcrlf
#——————————————————————–
———
# 赋一个新的值给记录的 nickname 列,这时已经没有活动的数据库连接
#——————————————————————–
———
adors.fields("nickname").value = "newtest-" & second(time())
#——————————————————————–
———
# 再次打开数据库连接,并绑定到先前的记录集上
#——————————————————————–
———
adoconn.open connectstring
adors.activeconnection = adoconn
#——————————————————————–
———
# 更新记录集,并显示新的值
#——————————————————————–
———
adors.update
response.write "新的昵称是:" & trim(adors.fields("nickname").value) &
"<br>" & vbcrlf 显示一个结果
#——————————————————————–
———
# 如果发生错误则显示错误
#——————————————————————–
———
if err.number <> 0 then
response.write "发生错误:" & err.description & "<br>"
end if
adors.close
adoconn.close
set adors = nothing
set adoconn = nothing
%>
<html>
<head><title>演示断开的连接</title></head>
