注册 登录
编程论坛 ASP技术论坛

asp中对象关闭时,不允许操作的问题

wsliuyunming 发布于 2011-03-01 13:38, 2872 次点击
<%
var username="dddd";
%>
<%
var  conn1=Server.CreateObject("ADODB.Connection");
     conn1.Provider="Microsoft.Jet.OLEDB.4.0";
     conn1.Open(Server.MapPath("mickey.mdb"));
var  rs1=Server.CreateObject("ADODB.Recordset");
var  sql ="select * from counttable where username='"+username+"'";
     rs1.Open(sql,conn1,1,3);

%>
<%
 if(rs1.EOF!=true)
//if(rs1.EOF!=true&&rs1.BOF!=true)
{
 var hit=Number(rs1.fields(1)+1);
     sq2="update counttable set hit="+hit+" where username='"+username+"'";
 
}

else
{
    sq2="insert into counttable values('"+username+"',1,1,1,Date())";
}

var  rs2=Server.CreateObject("ADODB.Recordset");
     rs2.Open(sq2,conn1);
 //rs2.Update();
%>

<%
Response.write("sdsad");
 rs1.Close();
 rs1=null;
rs2.Close();        //加上这两句的时候就会提示:ADODB.Recordset (0x800A0E78)
rs2=null;           //对象关闭时,不允许操作
conn1=null;

%>

当关闭第二个打开的Recordset对象即加上rs2.Close(),rs2=null;两句的时候就会提示:ADODB.Recordset (0x800A0E78)对象关闭时,不允许操作?不加rs2.Close(),rs2=null的时候就正确,这是为什么?
5 回复
#2
gupiao1752011-03-01 14:23

rs1.Close();
rs1=null;
rs2.Close();        //加上这两句的时候就会提示:ADODB.Recordset (0x800A0E78)
rs2=null;           //对象关闭时,不允许操作
conn1=null;
为:
conn1.close
set conn1=nothing
set rs1=nothing
set rs2=nothing

#3
gupiao1752011-03-01 14:24
楼主你的顶部分是不是加了LANGUAGE=“JAVASCRIPT”??
#4
aspic2011-03-01 15:37
明显是javascript的写法
#5
wsliuyunming2011-03-01 16:37
回复 3楼 gupiao175
嗯加了  javascript写的
#6
wsliuyunming2011-03-01 16:44
回复 4楼 aspic
会不会是执行了update,inset数据表之后它自动关闭了?所以再用Close()就重复了?

1