| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1738 人关注过本帖
标题:[求助]asp中是用完了的对象需要释放么
只看楼主 加入收藏
GrowingUp
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-12-19
收藏
得分:0 
8楼9楼的贵宾和版主请回一下我的最后那个问题谢谢!我就是想知道影响,拜托!

2007-03-13 19:18
YSKING
Rank: 5Rank: 5
来 自:中国绿城
等 级:贵宾
威 望:16
帖 子:1380
专家分:25
注 册:2006-11-11
收藏
得分:0 

也就是系统资源额外占用问题


仍然自由自我,永远高唱我歌,走遍千里...
2007-03-13 20:10
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
以下是引用做人很低调在2007-3-13 8:57:44的发言:
同意8楼所说的
Set rs=con.Execute("select * from [Table]")
是要
关闭和释放

但我所指的是
Set Rs = Conn.ExeCute("Update Table Set .....")

Set Rs = Conn.ExeCute("Delete ....")
这2中情况 并没有打开记录集

为什么要这样写?
Set Rs = Conn.ExeCute("Update Table Set .....")
???
什么用到?RS有什么用?
Conn.ExeCute("Update Table Set .....")有返回值?


2007-03-13 23:33
GrowingUp
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-12-19
收藏
得分:0 
回复:(GrowingUp)[求助]asp中是用完了的对象需要释...

求求你们哪位明白的先回答一下我在10楼提出的问题好么?我就是想知道会产生多大的影响,会不会积累造成服务器鼓掌或者只是当次执行服务器代码时占用,页面刷新后就不在占用了,请指教谢谢了!


2007-03-14 00:19
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
页面执行完了后SERVER是会帮你关,不过自己可以做的事情不要让SERVER做……
全给它做,数据里大的时候它会做不来

2007-03-14 00:44
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 

一下所述是本人对RS的认识 如果没什么不对的地方 请各位指正
----------------
1.conn.execute
set rs=conn.execute(sql)
执行完以后自动关闭记录集
最后只需要关闭连接就可以了
conn.close
set conn=nothing

2.rs.open
set rs=server.createobject("adodb.recordset")
sql="select * from table"
rs.open sql,conn,1,1
可以自己设定一些参数,即锁定和游标的移动方式
最后要关闭记录集和连接
rs.close
set rs=nothing
conn.close
set conn=nothing

3.command.execute
sql="select * from table"
set rs=command.execute(sql)
这个我很少用到。。。

************** 一些差异 ************************

1.
set rs=conn.execute("如果是select语句") 得到的rs.recordcount=-1
rs.open sql,conn("sql为select语句") 得到的rs.recordcount为正常的记录数

2.
rs.open是打开数据库 conn.execute 是执行SQL指令
set rs=conn.execute(insert,update,delete)返回一个关闭了的记录集
set rs=conn.execute(select)返回一个没有关闭的记录集

3.
CONN.EXECUTE(SQL,RowsAffected,C)
参数含义:
SQL的值可以是SQL语句、表名、存储过程名。为了提高性能,最好为C参数指定合适的值
可选参数RowsAffected将返回INSERT、UPDATE或DELETE查询执行以后所影响的数目。这些查询会返回一个关闭的Recordset对象。
一个SELECT查询将返回RowsAffected值为-1并且返回带有一行或多行内容的打开的Recordset。

4.
conn.execute sql适合于不需返回recordset对象时使用,比如下面的代码:
sql="delete from enews where id="&cstr(id)
conn.execute sql

如果需要返回recordset对象,则使用如下代码:
sql="select from enews where id="&cstr(id)
set rs = conn.execute(sql)

********
另回13楼
那样写法是个人习惯问题 不知道有什么不妥? 总之我那样写程序也一样进行


其实我很低调,只是你不知道...
2007-03-14 08:43
GrowingUp
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-12-19
收藏
得分:0 

刚谢楼上两位的回答,15楼的是哦想知道的,16楼是我想学习的,你一定费了不少工夫来整理,再次感谢!相信大家都能从你的精彩回答中学习到很多东西.顺便问下,问题解决的是不是可以把帖子的状态给改成已解决,但是我不知道怎么该,多多指教!


2007-03-14 13:06
JavaEE5
Rank: 2
等 级:新手上路
威 望:4
帖 子:150
专家分:0
注 册:2006-12-24
收藏
得分:0 
conn.execute(insert,update,delete) 这个东西应该是没有返回值的,最多返回个TRUE/FALSE
既然有返回值,当然rs也是没有打开的。




set rs=conn.execute("如果是select语句") 得到的rs.recordcount=-1
=======================
这是因为
rs=conn.execute("如果是select语句") ==== rs.open sql,conn,0,1 //这个返回的应该也是 -1,关键是后面两个参数

[此贴子已经被作者于2007-3-14 18:51:17编辑过]


我喜欢JavaEE5,虽然对此不了解。
2007-03-14 18:50
guyer
Rank: 2
等 级:新手上路
威 望:5
帖 子:451
专家分:0
注 册:2007-1-19
收藏
得分:0 
为什么我就出错?

<!--#include file="conn.inc"-->
<%
body=request.Form("content1")
sql="select * from jianjie"
set rs=conn.execute(sql)
if rs.eof or rs.bof then
sql="insert into jianjie(简介) values('"&body&"')"
else
sql="update jianjie set 简介='"&body&"'"
end if
set rs=conn.execute(sql)
rs.Close()
Set Rs = Nothing
%>

为什么我释放就会出错啊?

错误类型:
ADODB.Recordset (0x800A0E78)
对象关闭时,不允许操作。

[此贴子已经被作者于2007-3-16 17:39:51编辑过]


http://www./
2007-03-16 17:38
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
你的rs根本没有打开,而你又硬要它关闭,它关什么呀!它都没打开东西!

set rs=conn.execute(sql)
rs.Close()
Set Rs = Nothing
这三句改成
conn.execute(sql)
就行了,代码少了大半,还没错.

2007-03-16 23:13
快速回复:[求助]asp中是用完了的对象需要释放么
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024952 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved