帮忙看一下

kingisw 2003-10-05 05:22:41
set adocon=Server.CreateObject("ADODB.Connection")
adocon.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\testdb.mdb;User Id=;Password=;"
adocon.Open
sqlstr="insert into users (uid,uname,passwd,email) values ('s23f','sdf','we','kj')"
set rec=adocon.Execute(sqlstr)
rec.close //--------------------
adocon.Close

---------------------------------

加 rec.close 会出现错误:

ADODB.Recordset 错误 '800a0e78'

对象关闭时,操作不被允许。

/register3.asp,行10

--------------------------

请问是什么原因呢,rec.close 有必要吗,去掉则没问题

...全文
41 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hacker18 2003-10-05
  • 打赏
  • 举报
回复
楼主,我想补充几句。如果你想把rec对象释放掉的话,rec.close并不能做到这一点,还得用set rec=nothing语句来实现。我建议,如果后面的程序不会再用到rec,那么还是让它释放掉好一点儿,免得消耗系统资源。
DeltaCat 2003-10-05
  • 打赏
  • 举报
回复
因为你还没明白 Set recordset = adoconnection.execute(sql_statement)的意思

你的代码:
sqlstr="insert into users (uid,uname,passwd,email) values ('s23f','sdf','we','kj')"

set rec=adocon.Execute(sqlstr)

rec.close
------------------------------------------
其中
set rec=adocon.Execute(sqlstr)本来是应该返回记录集的,因为 rec 实际是返回 recordset类型
但 执行 INSERT操作返回的是 SQL语句执行成功与否的标志量,如果成功则返回0,否则返回非0
你这里用的 rec 根本就不是 RECORDSET,所以 他还没有 OPEN,当然也就不能CLOSE
kingisw 2003-10-05
  • 打赏
  • 举报
回复
为什么?
chense 2003-10-05
  • 打赏
  • 举报
回复
如果你没有使用到rec对象就把它close了,就会出现上面的问题。
直接adocon.Execute(sqlstr)就可以了。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧