to  zouzhichang(为爱注定一生要漂流) :能说具体一点吗???

解决方案 »

  1.   

    to xiaoailiu:我的问题就是当有多个用户同时联在同一个数据库上时,有一个用户1在select表1,而另一个用户2想drop掉表1,用户2想在做drop之前看一看表1的状态是“使用”还是“未使用”,以确定当前是否能做drop,understand???
      

  2.   

    好象没有什么太好的办法,如果多个用户访问数据库,数据库提供锁机制来控制并发问题,如果你要DROP的话,可能就比较复杂,可能要自己生成一张动态的操作表,并且过滤SQL语句。
      

  3.   

    在select表1时drop操作必然出错呀。你的程序发现运行出错就等一会儿(比如10秒钟)再Drop一次嘛!Understand?
      

  4.   

    if you are using SQL Server 7, look into syslocks system tableif you are using SQL Server 2000, look into syslockinfo system table
      

  5.   

    to saucer(思归):我用的是db27。1ee,不过谢谢你的热心!!!
    to  xl1(xl1) :能说的更详细一点吗?谢谢了!你也可以给我发个邮件:[email protected],再次表示感谢!!!
      

  6.   

    haha, sorry, I was no thinking when I was doing the post, :-)
      

  7.   

    turkeywhy (火鸡) :
    明白你的意思了,我用了三年DB2还是不会,真是惭愧。只能帮你UP一下了!UP!!!!!!!!BY THE WAY,我去帮你问一下IBM的工程师。有结果再给你回!
    =================================人见人爱的静静小艾与你交流,共享!
    [email protected]
      

  8.   

    to xiaoailiu(小艾) :谢谢!希望能收到你的来信!!!希望多交流!!!
    另外还有一个帖子,你感兴趣可以看看!!
    http://www.csdn.net/expert/topic/850/850732.xml?temp=.9073297
    对了,www.itpub.net你常去吗???
      

  9.   

    to  tanghuan() :谢谢!
    to mm1ss2hh3(天涯孤旅) :我查了联机文档,没有找到,你能告诉我吗?谢谢!
      

  10.   

    to xl1(xl1):又得麻烦你了!能具体说说生成“动态的操作表,并且过滤SQL语句”操作吗???谢谢!
    to tanghuan():我的数据库可能和一般的不太一样,数据库的原始数据是在一段时间内集中导入的,导入以后就不再修改了,平时使用就是通过前端的一个软件,对原始数据查询产生一些中间的数据,并保存下来,下次再在中间数据的基础上又查询,如此反复。因此对于中间数据是可以删除的。不过还是谢谢你的热心!!!
    to mm1ss2hh3(天涯孤旅):联机文档我找了,在“管理指南”的“第 10 部分 调整应用程序性能 第 22 章 应用程序考虑事项 ”中有有关锁定的信息,我也试过到syscat.tables里找,不过就是找不到表的当前锁定状态,syscat.tables中有一个字段locksize是定义的表的锁定类型,不是当前锁定的状态,所以希望你能说说在什么地方看表的当前的锁定状态吗?
      

  11.   

    是这样的可以在系统中建立一张表记录当前表操作状态,简单一点可以只有两列表ID和操作类型ID,操作类型ID可以分为Select , Insert , Delete 等情况。
    然后你要在将SQL语句提交给DBM之前先过滤这个SQL看他是操作哪张表,执行什么样的操作,然后将这信息记录在这张表上。但是我觉得不是很好的办法,因为在SELECT的语句时,DBM是使用游标,这个游标的状态是没法知道的。,个人意见,仅供参考。[email protected]