这是SQL的特点,不能锁定,要不你就人为操作吧,在每一记录后加一标志位,修改时将其置1,改完置0,修改前先看标志字段吧

解决方案 »

  1.   

    sqlserver 采用的是排队方式,
    也就是两个用户都在提交时,
    只会保存最后一个用户的提交数据。
      

  2.   

    你有没有使用事务?数据库的锁定是以事务为单位的,事务结束时自动解除锁定。如果你没有使用事务,那么每次操作都是一个事务,每一次操作后锁定都会被解除。
    Select * from MyTeble For Update
    如果两个连接都用这条语句打开,后打者就会等待直到先打开者的事务结束才会返回。
      

  3.   

    同意楼上的,sql的确最后保存的是最后一次的修改,不过从编程来看,我们可以自已来加锁,每个想要修改的用户先申请锁,申请到了的可以修改数据,没有申请到的只有浏览的权利,无法修改数据,即所谓人工加锁的方式,很简单也很实用,并且安全。
      

  4.   

    var Level : integer;...begin
     Level := ADOconnection1.BeginTrans;
     try
         //  Whatever ... updating, deleting, or inserting
      ADOConnection1.CommitTrans;
     except
      on E: Exception do ADOConnection1.RollbackTrans;
     end;
      

  5.   

    要不能同时修改的话你用pardox好了!
    完全能满足你的要求!
    (就是要共享文件夹,通过网络访问!)
      

  6.   

    不需要人工加锁,只要你把相关操作作为一个事务,对于需要修改的查询都加上"For Update"就可以了.