问题现象:
在注册或提交表单写入数据库时,也提示成功,但就是没有写入数据库里面,很让人郁闷!
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
出现这样的问题的时候,是由于无法更新数据库数据,比如无写权限等一般有如下两点:
1、你的数据库为ACCESS格式、你的数据库文件的属性为“只读”。
2、你的数据库为ACCESS格式、你的网站程序及数据库是放置在ntfs文件格式盘上的。
解决办法:
1、在你的数据库文件属性栏将“只读”前的“√”点掉即可。
2、首先打开“我的电脑” -> “工具” -> 文件夹选项 -> “默认使用简单共享(推荐)”,把这个选项去掉。
(1)对NTFS的文件系统:
再在所要连接的数据库文件上右键点击,就会出现安全选项卡,原来默认的没有,然后在安全选项卡里面可以设置用户的写入权限了。右击“数据库” -> 安全 -> 选中everyone 或users(computerusers) -> 在users的权限设置中,选中写入权限.问题就解决了!
(2)FAT32就不需要做上面的权限设置.
3、重新检查一下,你的代码或数据库的表名是不是用了 VB 等的保留字,如order,now,dir...... 这是致命的,一定要改成其它的。比如曾经我就用order做我订单的表名,后果就是不能写入数据库!在这种情况下,也可以不改表名,可以在出现表名的地方,用 [ ] 将表名括起来,这样用来区别于系统的默认函数或保留字,而且这也是严格的写法。如下
select * from [user]
select [name,number] from [order] order by id 其中的[order]是表名,后者order则是排序的系统函数!