| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1687 人关注过本帖
标题:“对象打开时,操作不被允许。” 这个错误怎么解决啊
只看楼主 加入收藏
不想从修
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-5-3
收藏
 问题点数:0 回复次数:2 
“对象打开时,操作不被允许。” 这个错误怎么解决啊

<html>

<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>新建网页 1</title> </head>

<body> <% dim connstr

username=request.form("name") password1=request.form("password1") password2=request.form("password2") email=request.form("email") if username="" then response.write"用户名不能为空" %> <a href=javascript:history.back()>上一页</a> <% response.end end if if password1<>password2 then response.write"两次输入的密码不一样" %> <a href=javascript:history.back()>上一页</a> <% response.end else password=password1 end if if email="" then response.write"电子邮件不能为空" %> <a href=javascript:history.back()>上一页</a> <% response.end end if Set conn = Server.CreateObject("ADODB.Connection") connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db1.mdb") conn.Open connstr set rs=server.createobject("adodb.recordset") sql="select * from [user] where (user.username='"&username&"')" rs.open sql,conn,3,1

if not rs.eof then response.write"以有人使用此用户名 请更换" %> <a href=javascript:history.back()>上一页</a> <%

else sql="insert into user(username,password,email) values('"&username&"','"&password&"','"&eamil&"')" rs.open sql,conn,3,1 response.write"注册成功"

end if %> </body>

</html> 每次总是提示:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

ADODB.Recordset 错误 '800a0e79'

对象打开时,操作不被允许。

/1234/reg.asp,行54 请各位帮帮忙,我到底该怎么办 我都郁闷了两天了 谢谢

搜索更多相关主题的帖子: 对象 
2005-08-20 10:04
toolag
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-7-30
收藏
得分:0 

[QUOTE]set rs=server.createobject("adodb.recordset") sql="select * from [user] where (user.username='"&username&"')" rs.open sql,conn,3,1 if not rs.eof then response.write"以有人使用此用户名 请更换" %> <a href=javascript:history.back()>上一页</a> <% else sql="insert into user(username,password,email) values('"&username&"','"&password&"','"&eamil&"')" rs.open sql,conn,3,1 response.write"注册成功" [/QUOTE] 'set rs=server.createobject("adodb.recordset") sql="select * from [user] where (user.username='"&username&"')" rs.open sql,conn,3,1 '建议写法set rs = conn.execute(sql),需要注释前面 set rs=server.createobject("adodb.recordset") if not rs.eof then response.write"以有人使用此用户名 请更换" %> <a href=javascript:history.back()>上一页</a> <% else rs.close'注意关闭记录集以备后续使用, 不再继续使用则 追加 set rs = nothing sql="insert into user(username,password,email) values('"&username&"','"&password&"','"&eamil&"')" rs.open sql,conn,3,1'建议写法conn.execute(sql) response.write"注册成功" rs.open sql,conn,3,1 造成了以上问题,下列资料ADODB.Recordest 的 Open方法可以参考

Open 方法 (ADO Recordset)

打开游标。

语法

recordset.Open Source, ActiveConnection, CursorType, LockType, Options

参数

Source 可选,变体型,计算 Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。

ActiveConnection 可选。变体型,计算有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。

CursorType 可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。可为下列常量之一(参阅 CursorType 属性可获得这些设置的定义)。

常量 说明
adOpenForwardOnly (默认值)打开仅向前类型游标。
adOpenKeyset 打开键集类型游标。
adOpenDynamic 打开动态类型游标。
adOpenStatic 打开静态类型游标。

LockType 可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一(参见 LockType 属性可获得详细信息)。

常量 说明
adLockReadOnly (默认值)只读 — 不能改变数据。
adLockPessimistic 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录来完成。
adLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用 Update 方法时才锁定记录。
adLockBatchOptimistic 开放式批更新 — 用于批更新模式(与立即更新模式相对)。

Options 可选,长整型值,用于指示提供者如何计算 Source 参数(如果它代表的不是 Command 对象),或从以前保存 Recordset 的文件中恢复 Recordset。可为下列常量之一(参见 CommandType 属性可获得该列表中前五个常量的详细说明)。

常量 说明
adCmdText 指示提供者应该将 Source 作为命令的文本定义来计算。
adCmdTable 指示 ADO 生成 SQL 查询以便从 Source 命名的表返回所有行。
adCmdTableDirect 指示提供者更改从 Source 命名的表返回的所有行。
adCmdStoredProc 指示提供者应该将 Source 视为存储的过程。
adCmdUnknown 指示 Source 参数中的命令类型为未知。
adCommandFile 指示应从 Source 命名的文件中恢复持久(保存的)Recordset
adExecuteAsync 指示应异步执行 Source
adFetchAsync 指示在提取 CacheSize 属性中指定的初始数量后,应该异步提取所有剩余的行。

说明

使用 Recordset 对象的 Open 方法可打开代表基本表、查询结果或者以前保存的 Recordset 中记录的游标。

使用可选的 Source 参数指定使用下列内容之一的数据源:Command 对象变量、SQL 语句、存储过程、表名或完整的文件路径名。

ActiveConnection 参数对应于 ActiveConnection 属性并且指定在其中打开 Recordset 对象的连接。如果传送该参数的连接定义,则 ADO 使用指定的参数打开新连接。可以在打开 Recordset 之后更改该属性的值以便将更新发送到其他提供者。或者可以将该属性设置为 Nothing(在 Microsoft Visual Basic 中)以便将 Recordset 与所有提供者断开。

对于直接对应于 Recordset 对象属性的参数(SourceCursorTypeLockType),参数和属性的关系如下:

  • Recordset 对象打开之前属性是读/写。
  • 除非在执行 Open 方法时传送相应的参数,否则将使用属性设置。如果传送参数,则它将覆盖相应的属性设置,并且用参数值更新属性设置。
  • 在打开 Recordset 对象后,这些属性将变为只读。

注意 对于其 Source 属性设置为有效 Command 对象的 Recordset,即使 Recordset 对象没有打开,ActiveConnection 属性也是只读的。

如果在 Source 参数中传送 Command 对象并且同时传递 ActiveConnection 参数,那么将产生错误。Command 对象的 ActiveConnection 属性必须已设置为有效的 Connection 对象或者连接字符串。

如果在 Source 参数中传送的不是 Command 对象,那么可以使用 Options 参数优化 Source 参数的计算。如果没有定义 Options 则性能将会降低,原因是 ADO 必须调用提供者以确定参数为 SQL 语句、存储过程还是表名。如果确知所用的 Source 类型,则可以设置 Options 参数以指示 ADO 直接跳转到相关的代码。如果 Options 参数与 Source 类型不匹配,将产生错误。

如果不存在与记录集关联的连接,Options 参数的默认值将为 adCommandFile。这是持久 Recordset 对象的典型情况。

如果数据源没有返回记录,那么提供者将 BOFEOF 属性同时设置为 True,并且不定义当前记录位置。但如果游标类型允许,仍然可以将新数据添加到该空 Recordset 对象。

在结束对打开的 Recordset 对象的操作后,可使用 Close 方法释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并在以后使用 Open 方法再次将其打开。要将对象从内存中完全删除,可将对象变量设置为 Nothing

在设置 ActiveConnection 属性之前调用不带操作数的 Open,可通过将字段追加到 Recordset Fields 集合创建 Recordset 的实例。

[此贴子已经被作者于2005-8-20 10:30:14编辑过]


VB, Delphi, ASP, PHP, JSP, .NET MS SQL, My SQL, Oracle Diablo, StarCraft, WarCraft, World of Warcraft
2005-08-20 10:29
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏
得分:0 
[QUOTE]else sql="insert into user(username,password,email) values('"&username&"','"&password&"','"&eamil&"')" rs.open sql,conn,3,1 response.write"注册成功"[/QUOTE] 改成 else sql="insert into user(username,password,email) values('"&username&"','"&password&"','"&eamil&"')" conn.execute sql response.write"注册成功"
2005-08-20 11:15
快速回复:“对象打开时,操作不被允许。” 这个错误怎么解决啊
数据加载中...
 
   



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

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