数据库只读,数据库的表 有的是只读模式 不能修改 怎么办
这篇文章给大家聊聊关于数据库只读,以及数据库的表 有的是只读模式 不能修改 怎么办对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
为什么数据库只能读不能写
原因:
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。
1。最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。
要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。
当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写的权限,因为
Jet需要在该目录建立一个.ldb文件。
2。第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
SQL="UPDATE Products Set UnitPrice= 2;"
Set Conn= Server.CreateObject("ADODB.Connection")
Conn.Mode= 3'3= adModeReadWrite
Conn.Open"myDSN"
Conn.Execute(SQL)
Conn.Close
注意默认的Mode是设置0(adModeUnknown),它是允许更新的。
3。还有可能是在ODBC管理器中将该DSN的只读选项选中。
4。你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新
这两个表中各自字段。
5。当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)
中的查询时,在执行这个查询是会出现该错误。
不能更新。数据库或对象为只读。
可能是你的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//你可以把这一句去掉下看看。再不行应该是数据库的问题了,你的代码没什么问题。
上面的几句检查下。
数据库的表 有的是只读模式 不能修改 怎么办
这是因为表中的这个字段(即单元格)跟其他表有外键约束。
如:
班级表(主表)
班级id班级名称
1一年一班
2一年二班
学生表(副表)
学生id学生姓名所属班级id
1张三 1
2李四 1
3王五 2
4赵六 2
如果要更改副表中的班级id为1的改为3,那么就无法更改,因为学生表中的所属班级id必须为主表中存在的才可以。
OK,关于数据库只读和数据库的表 有的是只读模式 不能修改 怎么办的内容到此结束了,希望对大家有所帮助。