并发处理
来源:互联网 发布:内网win7端口怎么开启 编辑:程序博客网 时间:2024/05/21 17:21
前些日子,一直在做并发访问的事.可是,不管是对表还中数据进行锁定,都不能得到想要达到的结果.后来想了想,用了对数据进行标识进行处理:
步骤:
一:刚开始去更改的时候,去查一个未处理的ID,获取此ID。
二:把文件ID记录下来。然后去把这个未处理的记录设置为正在处理、并记录下当前正在处理的者的ID。
三:根据这个状态为正在处理的、文件ID进行查询
四:对这个文件的修改者进行身份判断。看是否为当前用户。要是的话,就进行正常操作。不是的话,就放弃处理(在客户端进行提示、服务器就放弃处理,进行下一次处理。)。
//将未处理处理完的申请置为正在处理
WITH query3 DO
begin
close;
sql.Clear;
sql.Add('UPDATE FileInfo SET file_state=:file_state, processID=:processID,ProcessName=:processName ');
sql.Add(' where file_state="未处理" and file_id='+query1.fieldbyname('file_id').AsString);
paramByName('processID').AsInteger:=mainform.user_id;//将操作员置未当前用户
paramByName('processName ').asstring:=mainform.user_Name;
paramByName('file_state').AsString:='正在处理';
prepare;
execSql;
end;
//查询选择的文件信息
WITH query3 DO
begin
close;
sql.Clear;
sql.Add('select * from FileInfo ');
sql.Add(' where file_state="正在处理" and file_id='+query1.fieldbyname('file_id').AsString);
prepare;
open;
end;
////查询选择的文件的修改者是否为当前用户---------------
if (query3.FieldByName('porcessID').AsInteger=mainform.user_id) then
begin
……正常操作
end
else
begin
……忽略或者告警当前申请被其他用户操作。
end;
- 并发处理
- 并发处理
- 并发处理
- 并发处理
- 并发处理
- 并发处理
- 处理并发
- 并发处理
- Sql Server 并发处理
- 多线程并发处理
- 数据库并发处理
- FastCGI的并发处理
- FastCGI的并发处理
- 乐观锁(处理并发)
- 大并发处理解决方案
- java处理多线程并发
- 服务器并发处理能力
- 并发处理解决方案
- 详解MANIFEST.MF文件
- Python 3 教程一:入门
- Python 3 教程二:文件,目录和路径
- SQL2005利用ROW_NUMER实现分页的两种常用方式
- java相对路径与绝对路径
- 并发处理
- 几种拼接字符串的效率问题
- 在ASP.NET中使用Quartz.net进行工作调度
- 单例模式的简单代码实现
- LoadRunner错误处理函数
- 软件项目管理面试题
- 2009年具有高等学历教育招生资格独立学院名单
- jQuery动态加载页面和请求所返回的数据
- 融合