有一个问题缠绕我好几天了,一直没有解决,希望各位高人能够指点一二:在一oracle的数据表Tab1里存放了一些数据,在程序中有一个定时器,其作用为定时扫描数据库,当发现有新数据入库时,计算出目前共有多少条新数据并显示在界面中的一个lable中,当用户点击按钮cmd1时,程序从数据库中取出最新的一条数据并显示,在该用户取数据的同时修改此数据的标志位,表示已被浏览。但现在的问题是,我该如何才能避免多个用户同时访问同一条数据?即当有一个用户在访问某条未被浏览的数据时,其他用户不能访问此数据,只能访问其它未被浏览的数据?这种问题能解决吗?急用!!请各位帮帮忙啦!不胜感谢!!!

解决方案 »

  1.   

    用一张固定的表记录 当前用户情况..当用户打开某个表时.在表中写入  用户名,数据表名每一个用户打开一个表时,都检查一次COUNT(表名) 是否达到了某个值...如果是,则提示用户.
      

  2.   

    Oracle没用过,不过原则应该差不多的。如果你只是为了让用户浏览记录,不必在表中修改记录,这样会造成记录被锁,你可以在前台用变量进行标记。只要不修改记录,你就可以用readonly锁,这样,程序的运行会很顺畅。
      

  3.   

    victorycyz(中海):
    前台用变量标记?可是前台程序不止一个,怎么标记啊?
      

  4.   

    在表中加标志位.标志位为0,表示可用,为5表示被取,为1表示正在浏览 比如,一个用户一次可以浏览100条记录.则这样处理,首先,将100条记录的标志位置5
    然后用户取出这100条记录进行浏览,同时将标志位置1,表示正在浏览
    浏览完成将,将标志位置0oracle应该有锁可以实现的,可惜没用过oracle,建议转到oralce版去问问.