日期:2014-05-17  浏览次数:21028 次

asp:为什么不能对Access数据库进行 insert 操作????
错误类型:
Microsoft   OLE   DB   Provider   for   ODBC   Drivers   (0x80004005)
[Microsoft][ODBC   Microsoft   Access   Driver]   操作必须使用一个可更新的查询。
/hp/user_registcheck.asp,   第   50   行


源程序:
.....
set   cmd   =   Server.CreateObject( "ADODB.Command ")
cmd.ActiveConnection   =conn
cmd.CommandText   =   "select   count(*)   from   user_T   where   UserName= ' "&Request.Form( "username ")& " ' "
set   rs   =   cmd.Execute
if   rs(0)> 0   then  
            errOccur( "你的用户名已经存在!请选择其他的用户名. ")
                rs.close
                set   rs=nothing
else
cmd.CommandText   =   "insert   into   user_T   (UserName,Password)   values( ' "&Request.Form( "username ")& " ', ' "&Request.Form( "pwd ")& " ') "
      cmd.Execute     ,,adCmdText+adExecuteNoRecords         //50行
      Response.write   ( "客户资料已经保存! ")
      conn.close
      conn=nothing  
....

可更新的查询?啥意思,哪位大侠指点一下,不胜感激!!!!

------解决方案--------------------
有几种可能,大多数情况是access数据库文件本身的权限问题,看一下是不是IUSER_xxx用户有写的权限。还有就是数据库的路径是否正确。
参考:
http://www.chinaitservice.net/database/操作必须使用一个可更新的查询解决办法4147.html
------解决方案--------------------
给 everyone 加写操作权限
------解决方案--------------------
cmd.CommandText = "insert into user_T ([UserName],[Password]) values( ' "&Request.Form( "username ")& " ', ' "&Request.Form( "pwd ")& " ') "
这样试试

------解决方案--------------------
权限不够!
给运行IIS 的 IUSER_xxx 用户(xxx一般为机器名称),具有 access 文件写的权限