不能更新。数据库或对象为只读。
MicrosoftJETDatabaseEngine(0x80040E09)不能更新。数据库或对象为只读。/show.asp,第16行<%dimmvarbClick,mv...
Microsoft JET Database Engine (0x80040E09)
不能更新。数据库或对象为只读。
/show.asp, 第 16 行
<%
dim mvarbClick,mvarbId,mvarbTitle,mvarbWriter,mvarbCopyRight,mvarbContent,mvarbAddTime
set rs=server.CreateObject("adodb.recordset")
msql="select * from Ay_Content where bId=" & request("id")
rs.open msql,conn,1,3
if not rs.eof then
mvarbId=trim(rs("bId") & "")
mvarbTitle=Juncode(trim(rs("bTitle")&""))
mvarbAddTime=FormatDate(trim(rs("bAddTime")&""),"2")
mvarbWriter=trim(rs("bWriter")&"")
mvarbCopyRight=trim(rs("bCopyRight")&"")
mvarbContent=Juncode(trim(rs("bContent")&""))
mvarbClick=trim(rs("bClick")&"")
mvarbClassID=trim(rs("bClassID") & "")
第16行 rs("bClick")=rs("bClick")+1
rs.update
end if
if rs.state<>0 then rs.close
set rs=nothing
%> 展开
不能更新。数据库或对象为只读。
/show.asp, 第 16 行
<%
dim mvarbClick,mvarbId,mvarbTitle,mvarbWriter,mvarbCopyRight,mvarbContent,mvarbAddTime
set rs=server.CreateObject("adodb.recordset")
msql="select * from Ay_Content where bId=" & request("id")
rs.open msql,conn,1,3
if not rs.eof then
mvarbId=trim(rs("bId") & "")
mvarbTitle=Juncode(trim(rs("bTitle")&""))
mvarbAddTime=FormatDate(trim(rs("bAddTime")&""),"2")
mvarbWriter=trim(rs("bWriter")&"")
mvarbCopyRight=trim(rs("bCopyRight")&"")
mvarbContent=Juncode(trim(rs("bContent")&""))
mvarbClick=trim(rs("bClick")&"")
mvarbClassID=trim(rs("bClassID") & "")
第16行 rs("bClick")=rs("bClick")+1
rs.update
end if
if rs.state<>0 then rs.close
set rs=nothing
%> 展开
3个回答
展开全部
可能是你的Access所在的盘为ntfs格式
而这个格式中要求相应的帐户具有修改的权限 这样access才能够进行更新
方法:
如果配置站点的时候,分区是NTFS格式的情况下,会遇到80004005的数据库或对象为只读错误,如:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
造成这个原因的问题就是站点目录的访问权限问题,因为在使用Access数据库的时候,要在同目录生成一个.ldb文件,如果此目录没有写权限或者Access数据库本身没有写的权限,那么就会报这个错误。由于通过浏览器访问网站大都使用Internet匿名访问,我们只需要在数据库的目录权限里添加上“IUSR_计算机名”用户就可以了,分给它“写入”权限。我发现一些文章说让加入EveryOne用户,并给“写入”权限,这个太危险了。原则上是此目录加的可以写入用户就是在IIS中配置的时候加的Internet匿名访问用户,一般默认为“IUSR_计算机名”,不过如果是虚拟主机就要自己看看了。
操作方式就是:
鼠标右键点击数据库所在目录(或者它上级目录,但是注意要能够继承权限)-〉选择“共享和安全”-〉选择“安全”选项卡-〉点击“添加”按钮-〉点击“高级...”按钮-〉点击“立即查找(N)”按钮-〉找到前缀为“IUSR_”的用户名(格式为IUSR_计算机名)-〉选中此用户,点击确定-〉这样这个用户就被加进来了-〉在“Internet来宾帐户”的权限框中,除了默认的还要选中“写入权限”-〉“应用”或者“确定”即可。
提示:如果是WinXP系统下找不到“共享和安全”选项,需要先进行一下设置:“工具”-〉“文件夹选项”-〉“查看”-〉“默认使用简单共享(推荐)”,把这个选项去掉,再在文件夹上右键点击,就会出现安全这个选项。
上面是我贴我过来的,希望能帮助你。
msql="select * from Ay_Content where bId=" & request("id")
mvarbClick=trim(rs("bClick")&"")
rs("bClick")=rs("bClick")+1
if rs.state<>0 then rs.close
set rs=nothing// 你可以把这一句去掉下看看。再不行应该是数据库的问题了,你的代码没什么问题。
上面的几句检查下。
而这个格式中要求相应的帐户具有修改的权限 这样access才能够进行更新
方法:
如果配置站点的时候,分区是NTFS格式的情况下,会遇到80004005的数据库或对象为只读错误,如:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
造成这个原因的问题就是站点目录的访问权限问题,因为在使用Access数据库的时候,要在同目录生成一个.ldb文件,如果此目录没有写权限或者Access数据库本身没有写的权限,那么就会报这个错误。由于通过浏览器访问网站大都使用Internet匿名访问,我们只需要在数据库的目录权限里添加上“IUSR_计算机名”用户就可以了,分给它“写入”权限。我发现一些文章说让加入EveryOne用户,并给“写入”权限,这个太危险了。原则上是此目录加的可以写入用户就是在IIS中配置的时候加的Internet匿名访问用户,一般默认为“IUSR_计算机名”,不过如果是虚拟主机就要自己看看了。
操作方式就是:
鼠标右键点击数据库所在目录(或者它上级目录,但是注意要能够继承权限)-〉选择“共享和安全”-〉选择“安全”选项卡-〉点击“添加”按钮-〉点击“高级...”按钮-〉点击“立即查找(N)”按钮-〉找到前缀为“IUSR_”的用户名(格式为IUSR_计算机名)-〉选中此用户,点击确定-〉这样这个用户就被加进来了-〉在“Internet来宾帐户”的权限框中,除了默认的还要选中“写入权限”-〉“应用”或者“确定”即可。
提示:如果是WinXP系统下找不到“共享和安全”选项,需要先进行一下设置:“工具”-〉“文件夹选项”-〉“查看”-〉“默认使用简单共享(推荐)”,把这个选项去掉,再在文件夹上右键点击,就会出现安全这个选项。
上面是我贴我过来的,希望能帮助你。
msql="select * from Ay_Content where bId=" & request("id")
mvarbClick=trim(rs("bClick")&"")
rs("bClick")=rs("bClick")+1
if rs.state<>0 then rs.close
set rs=nothing// 你可以把这一句去掉下看看。再不行应该是数据库的问题了,你的代码没什么问题。
上面的几句检查下。
展开全部
msql="select * from Ay_Content where bId=" & request("id")中的id怎么没有定义,也没有传送过来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语句应该没什么问题,1楼NTFS格式改变安全属性的应该是正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询