当前位置: 首页 > 图文教程 > 网络编程 > ASP > 断开的数据库连接的一个例子

ASP
ASP调用ORACLE存储过程并返回结果集
用ASP实现网页BBS
关于Global.asa文件的深入研究与session变量失效提示的具体方法
简易ASP+注册系统
防护手册:如何防止ASP木马在服务器上运行
用Visual Basic实现多画面播放功能之二
如何增强ASP程序性能(1)
如何增强ASP程序性能(2)
如何增强ASP程序性能(3)
ASP备份数据库
二十八条改善 ASP 性能和外观的技巧
在Form域中Post大于100K的数据
如何使用ASP制作模似动态生长的表单?
Microsoft IIS 真的如此「不安全」吗?(1)
Microsoft IIS 真的如此「不安全」吗?(2)
Microsoft IIS 真的如此「不安全」吗?(3)
Microsoft IIS 真的如此「不安全」吗?(4)
Microsoft IIS 真的如此「不安全」吗?(5)
关于页面和代码分离
ServerVariables 对路径的操作

ASP 中的 断开的数据库连接的一个例子


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 155 ::
收藏到网摘: n/a

使用断开的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