西游记的概括:[求助]急!!在线等!各位大虾,为何我的数据库只能访问,但不能修改?

来源:百度文库 编辑:高校问答 时间:2024/04/25 08:35:14
我的连接代码:
<%
set conn=server.CreateObject("adodb.connection")
conn.open="DBQ="+server.mappath("database/swdb.mdb")+";DRIVER=Microsoft Access Driver (*.mdb);"
%>
<%
lj=request.Querystring("lj")
exec="select * from mic where lj='"&lj&"'"
set rms=server.CreateObject("adodb.recordset")
rms.open exec,conn,1,1
%>
<%
stcs=rms("st")
set rst=server.CreateObject("adodb.recordset")
rst.open exec,conn,1,3
rst("st")=stcs+1
rst.update '就是在这出错!
rst.close
set rst=nothing
%>

能解决给80分!!!
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
/sy/play.asp, 第 18 行

在原来做这个页的机子可以运行,
搬到另一台机子就不行了.

数据库没设置只读.
谢谢,关闭数据库在另一段代码上.:)
在线等!!!

你数据库所在的目录没有写权限啊,打开我的电脑,选工具,查看,把(使用简单文件共享(推荐))这项去掉,然后右击你的目录。点安全,把你登录的用户名权限打开,要完全控制的那种权限,然后再对数据库进行更新看看。不行的话添加一个everyone用户,并把它的权限打开,我上次也遇到过这样的问题,就是这样解决的,希望这次能帮到你。

上面那段程序可以简化,改了一处:(rst.open exec,conn,2,3)
<%
set conn=server.CreateObject("adodb.connection")
conn.open="DBQ="+server.mappath("database/swdb.mdb")+";DRIVER=Microsoft Access Driver (*.mdb);"
%>
<%
lj=request.Querystring("lj")
exec="select * from mic where lj='"&lj&"'"
set rms=server.CreateObject("adodb.recordset")
rms.open exec,conn,1,1
%>
<%
stcs=rms("st")
set rst=server.CreateObject("adodb.recordset")
rst.open exec,conn,2,3 '改了这里的错!
rst("st")=stcs+1
rst.update
rst.close
set rst=nothing
%>

程序简化后:
<%
set conn=server.CreateObject("adodb.connection")
conn.open="DBQ="+server.mappath("database/swdb.mdb")+";DRIVER=Microsoft Access Driver (*.mdb);"
lj=request.Querystring("lj")
exec="select * from mic where lj='"&lj&"'"
set rst=server.CreateObject("adodb.recordset")
rst.open exec,conn,2,3
rst("st")=rst("st")+1
rst.update
rst.close
set rst=nothing
%>

rms.open exec,conn,3,2

查看一下数据库的属性,看看是否属于只写状态,如果是,该成读/写。或者数据库是否处于视图状态,ACCESS不及SQL好使。
往后用完数据库连接后,别忘了关掉它,浪费资源。