***************SQL2K,D6 C/S 我想这样,当某用户修改数据时,锁定该记录,当另一用户试图修改该记录时,则向试图修改该记录的用

  • 主题发起人 主题发起人 蛐蛐
  • 开始时间 开始时间

蛐蛐

Unregistered / Unconfirmed
GUEST, unregistred user!
***************SQL2K,D6 C/S 我想这样,当某用户修改数据时,锁定该记录,当另一用户试图修改该记录时,则向试图修改该记录的用户发出“XXX正在修改该记录”,同时,也向原用户发出相关信息。有没有人有较好的解决办法 ********************* (99分)<br />我该怎么做?
我的用户没有在SQL2K系统表里。
 
新建一个表A 保存当前正在编辑的记录关键字及用户名
当用户要编辑记录时 先检查刚才那个表A 如果有此记录则显示 'XXX正在修改'
如果没有人在修改则添加此用户及表的关键字
 
我也同时想问其它人的解决方案。 大家 有时间帮我提前
 
一种做法是在表里面加一个字段
操作一条记录时,就把这个字段置值
 
Don't use any self-defined field or temp table,just lock the record.
if it's SQL Server, use CONTEXT to get user information.
 
only you 的方法我试过,不过当程序非法退出的时候,经常会死锁。
还要用其他的方法硬解锁。很烦的。
不知道其他人还有没有其他方法。帮你up一下
 
我也想知道,up
 
再。。。UP一下吧
 
不如改为
A用户修改记录,(锁定,更新,解锁)---这里很快的无需考虑太多,用存储过程就行了
通知B用户“XXX已经修改记录”

不要做成A用户开始编辑就锁定,结束编辑才解锁
 
感觉nulk讲的有点意思,能不能详细点?
 
建信号量

不过一个更简单的方法使用一个全局boolean变量,修改的时候置为false;通过读取它来判断
 
在表中加一个字段吧, 谁修改记录就把该字段赋成该用户名称,修改完毕就赋空...

只是要增加对用户非正常退出(比如掉电)的处理,
 
我是用UPDATEBATCH模式的,字段模式行不通的!
 
SlowDown:
能詳細一點嗎?(Should you tell me more about the context and how to use it)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部