当前位置:首页
开发技术指南» 文章正文
    引言:

 ·activemovie如何释放文件    »显示摘要«
    摘要: 我用微软的activemoive(6.4的,不是9版的)控件做了一个播放器,现在遇到一个问题。 activemoive播放结束后文件还是保持在占用状态,不能删除。我先用了stop方法停止播放了,结果文件还是被占用状态,有什么方法使activemovie在停止播放后释放掉那个文件? ......
    摘要: 调了半天不成 ......


碰到个问题,一下各位,关于 操作必须使用一个可更新的查询。

提示是这样子的  
   
  “/shtufz”应用程序中的服务器错误。  
  --------------------------------------------------------------------------------  
   
  操作必须使用一个可更新的查询。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.Data.OleDb.OleDbException:   操作必须使用一个可更新的查询。  
   
  源错误:    
   
   
  行   30:    
  行   31:                           dbConnection.Open();  
  行   32:                           int   aff=dbCommand.ExecuteNonQuery();  
  行   33:                           dbConnection.Close();  
  行   34:           return   aff;  
     
   
   
  我把数据库放在D盘的目录下面,就出现了以上问题,但放到C盘,执行却一切正常,而且有时放在D盘是好的,有时又不好了,想请教一下,这倒底是怎么回事,我现在也搞不懂了,谢谢大家了

NO.1   作者: shine_88

数据库目录不是只读目录吧?  
   
  对目录赋予相应权限,在该目录上点击右键,选择“共享及安全”选单,选择“安全”选项卡,为安全起见,不要对everyone用户赋予全权限  
   
  两种情况:2000和XP用户,请添加用户组"asp.net",并将该用户组赋予全权限!  
   
  2003用户,请添加用户组"network   service"赋予全权限。

NO.2   作者: zahota

 
  估计你用的是ACCESS数据库,如是,请选择数据库文件右键---属性----权限  
  设置为完全控制

NO.3   作者: david8k

你的ACCESS的数据库的属性EVERYONE没有设为完全控制

NO.4   作者: bingbingcha

看看这个文章,是关于ACCESS在.NET下的被访问权限问题..  
  http://blog.joycode.com/percyboy/articles/36659.aspx  
   
   
  (b)   如果   db1.mdb   是   Access   XP   创建的数据库,出现如下错误:    
   
  “/test”应用程序中的服务器错误。    
  ----------------------------------------------    
  操作必须使用一个可更新的查询。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。      
  异常详细信息:   System.Data.OleDb.OleDbException:   操作必须使用一个可更新的查询。    
   
   
   
  (c)   原因初步分析:因为包含有“UPDATE”“INSERT”“UPDATE”等命令,需要对数据库文件本身进行写入操作,所以上述权限不能满足此需求,我们需要进一步放开权限。    
   
  我们放开一些权限,    
      a)   D:\wwwroot\test\data\   文件夹不变:    
   
        b)   D:\wwwroot\test\data\db1.mdb   文件本身给用户ASPNET以如下权限:       允许   拒绝    
  完全控制   □   □    
  修改   □   □    
  读取及运行   √   □    
  列出文件夹目录   √   □    
  读取   √   □    
  写入   √   □    
   
   
   
  1.3     放开权限后继续实验,    
   
  (a)   如果   db1.mdb   是   Access   2000   创建的数据库,出现如下错误:    
   
  “/test”应用程序中的服务器错误。    
  ------------------------------------------    
  不能锁定文件。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。      
  异常详细信息:   System.Data.OleDb.OleDbException:   不能锁定文件。    
   
   
   
  (b)   如果   db1.mdb   是   Access   XP   创建的数据库,没有出现错误。    
   
   
   
  (c)   原因初步分析:我们发现在打开   Access   数据库时,同时会在所在目录生成一个同名的   *.ldb   文件,这是一个   Access   的锁定标记。鉴于此,我们猜测,用户   ASPNET   访问   Access   数据库时,也需要生成一个锁定标记,而该目录没有允许其写入,因此出错。至于   Access   XP   创建的数据库为什么没有这个错误,原因还不得而知。    
   
  我们进一步放开权限,    
      a)   D:\wwwroot\test\data\   文件夹给用户ASPNET以如下权限:     允许   拒绝    
  完全控制   □   □    
  修改   □   □    
  读取及运行   √   □    
  列出文件夹目录   √   □    
  读取   √   □    
  写入   √   □    
   
   
        b)   D:\wwwroot\test\data\db1.mdb   文件本身给用户ASPNET以如下权限:    
              √   允许将来自父系的可继承权限传播给该对象    
   
   
   
   
   
  1.4   继续实验,发现错误已解决,那么上面这个权限就是我们需要放开的“最低权限”。    
   
  (a)   如果   db1.mdb   是   Access   2000   创建的数据库,我们会发现一个小问题:生成的   *.ldb   文件不会自己删除,访问后该文件依然存在,但这个问题不会影响   ASP.NET   的正常运行。    
   
   
   
  (b)   如果   db1.mdb   是   Access   XP   创建的数据库,没有出现上面类似问题。    
   
   
   
  (c)   原因初步分析:我们仅仅是给了   ASPNET   以写入文件夹的权限,没有给它修改的权限,所以文件一旦写入,便无法修改其内容,*.ldb   也就删除不掉了。    
   
   
   
  如果非要解决这个问题,进一步放开权限为:    
      a)   D:\wwwroot\test\data\   文件夹给用户ASPNET以如下权限:     允许   拒绝    
  完全控制   □   □    
  修改   √   □    
  读取及运行   √   □    
  列出文件夹目录   √   □    
  读取   √   □    
  写入   √   □    
   
   
        b)   D:\wwwroot\test\data\db1.mdb   文件本身给用户ASPNET以如下权限:    
              √   允许将来自父系的可继承权限传播给该对象    
   
   
 

NO.5   作者: mint

上面已经说得很清楚了,权限问题。分配aspnet用户权限。另,注意一下你的分区,d盘是不是ntfs分区?它对权限要求更严格


 ·文件夹加锁    »显示摘要«
    摘要: 我想做一个文件夹加锁程序,可是不知道怎么下手, 希望那位大侠能提点提点,给个思路也好! 先谢了! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE