今天调试了一个网站,这个网站用的是Access,但以前都用SQL,忽然感觉有点不习惯...
这个网站是别人开发的,我们老板买了过来,让我调试一下,本以为很简单,但在调试过程中发现,用户可以正常登录网站,但一涉及到数据库的修改,如update这些操作时,就会提示:操作必须使用一个可更新的查询 等类似的错误提示...
本以为是代码有问题,所以一直找调试代码,但最后怎么也找不出毛病,后来又怀疑是不是IIS配置有问题,但也后还没找出来。
最后,无意间看见文件的属性为:只读,会不会是这个问题呢?试试吧,最后把文件"只读"的那勾去掉了,但调试的时候还是不行。最后一想,不对,是不是因为权限的问题,一看分区,果然是NTFS的,然后我看看我我这个网站允许匿名访问的用户名,然后把它添加到了里面,但结果还是不行,无论我把这个用户的权限如何调,就是不行,由于我这是Win2003,为了安全,以前我把evryone这个给删掉了,我想把这个给加上看看,再给它一个“可写”的权限,然后再运行网站。
OK,搞定!!
最后得出一结论:在用Access作为数据库的网站里,如果磁盘分区是NTFS的,那么这个Access文件必须让evryone用户具体可写权限,否则,数据库更新操作将会出错。
而跟开发语言没多大关系。
 
补充:如果还是不行的话可以,查看一下系统盘的windows\temp目录,看一下evryone用户是否且有写权限,如果没有,加上evryone的写权限就可以了(只对NTFS格式的磁盘有效)。