发信人: yahao() 
整理人: qcrsoft(2001-12-19 17:47:23), 站内信件
 | 
 
 
【 在 addon (小李飞刀) 的大作中提到: 】
 : 曾听亚豪说过,把recordset取得后可以
 : conn.close,然后再读数据?
 : 可我写的
 : set conn=........连接
 :    .......
 
   使用断开的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>ASP中华网 - 演示断开的连接</title></HEAD>
 
  -- 【 http://www.aspcn.com 】-〉ASP中华网:中国的ActiveX组件搜索地、ASP文章、教程 【 http://yahao.163.net 】-〉亚豪驿站™:我的个人主页,内容不多,个人兴趣爱好而已 【 --- [email protected] ---】-〉我的信箱,别扔炸弹哦!
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.100.17]
  | 
 
 
 |