原因:
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似 *** 作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。
1。最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。
要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。
当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为
Jet需要在该目录建立一个ldb文件。
2。第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
SQL = "UPDATE Products Set UnitPrice = 2;"
Set Conn = ServerCreateObject("ADODBConnection")
ConnMode = 3 '3 = adModeReadWrite
ConnOpen "myDSN"
ConnExecute(SQL)
ConnClose
注意默认的Mode是设置0(adModeUnknown),它是允许更新的。
3。还有可能是在ODBC管理器中将该DSN的只读选项选中。
4。你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新
这两个表中各自字段。
5。当你使用了一个从低版本中(如ACCESS20,ACCESS70)载入到高版本(ACCESS 2000)
中的查询时,在执行这个查询是会出现该错误。
第一你查看单元格是否为自增属性,如果不是,你在查看是否为编辑状态。
如果单元格是灰色的一半是不能输入的。还有就是点击的时候 状态栏会显示为只读, 还有就是你用数据库工具打开数据库是怎么打开的 是打开查询数据 还是 编辑数据
可以 你把它的属性 改为不是自增的 都可以修改
在数据库中 你设计表的时候,每个int型字段都有一个是否自增的属性,你可以改的 ,除了int型以外 其他的 都没有不可以改的
mount下alter
database
open
read
only;
补充:数据库open之后肯定不好改为read
only了,一定要在mount下改才行
但是非关键表空间还是可以切换到read
only的,比如users
alter
tablespace
users
read
only;切换回来就是read
write
system,sysaux跟undo无法切换为只读,因为正常open之后为了维护库的正常运行这3个表空间肯定要读写信息的
如何修改sql
数据库
只读权限
可以使用如下命令来设置sql
server数据库的只读特性。
以下是以master库为例来说明的:
USE
[master]
GO
ALTER
DATABASE
[TESTDB]
SET
READ_ONLY
WITH
NO_WAIT
GO
方案一:
碰到报错数据库附加是只读,一般原因是因为使用sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定。
方案二:
使用sa登录SQL Server2008附加数据库,附加之后数据库为只读的,然后点数据库-->“属性”-->“选项”-->“状态”,发现“数据库为只读”这一项为True,改为false即可。
以上就是关于为什么数据库只能读不能写全部的内容,包括:为什么数据库只能读不能写、sql2008 数据只读怎么办、怎么将ORACLE数据库设置为只读等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)