现有一数据库存有数万考生作文,如何避免两个评卷老师都评同一个学生?请高手赐教(100分)

  • 主题发起人 主题发起人 lcl800
  • 开始时间 开始时间
L

lcl800

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一数据库存有数万考生作文,如何避免两个评卷老师都评同一个学生?
 
锁定记录。
 
如何锁定?
 
while (TABLEFIELD<>“正在评卷”) and (TABLEFIELD<> "评卷结束“) do
begin
IF 更新操作成功(UPDATE table set TABLEFIELD=“正在评卷”) then
begin
评卷
....
UPDATE table set TABLEFIELD= "评卷结束“ (更新操作)
end
next
end
(字段TABLEFIELD 表示评卷状态)
 
就是这样的,操作系统里面有介绍
 
加个字段而已
 
请朋友们继续
 
sqlserver 里面可以用行锁,tablelockx,好像是这个。不太记得了。
 
插入一个字段作为评卷标志,如正在评用1没评的用0。
 
把其中一个老师正在评的表的字段锁上。
 
这方法可行。好像没有记录锁定吧,要么页面锁,要么表锁
 
你用事务控制这种情况的发生,
procedure Tform2.button1click(sender:object);
begin
try
adoconection.beginstran;
adoquery1.append;
do....
adoquery1.post;
adoconnection.commition;
except
adconnection.rollback;
showmessage('error');
//根据相应的出错代码进行控制
end
 
devexpress:
对你的方法很感兴趣,希望再详细一点。
 
用事务太麻烦了,加个字段吧,若有老师在评阅,设置一个标志。
 
当一个老师家标志时,同时另一个老师也在检索,
两个老师都给同一个考生加标志,怎么办?
 
来自:lcl800, 时间:2002-9-15 16:09:00, ID:1326230
当一个老师家标志时,同时另一个老师也在检索,
两个老师都给同一个考生加标志,怎么办?

用事务就解决了。
 
encounter:
麻烦你给出相关的代码,谢谢!
 
当一个老师家标志时,同时另一个老师也在检索,
两个老师都给同一个考生加标志,怎么办?
》》
可能吗?如果你正在修改这条记录时,别人还能改的了?
 
我采用的是多层结构
先检索没有评卷的考生,
再做标记
最后评卷
原来已经出现这种情况
 
后退
顶部