列名:
FileName DocTypeID BatchNum JobNum PageNum JobState
文件名 文件的类型 批次号 Job号 页数 文件的状态值
具体的逻辑是:文件分不同的
DocTypeID即文件的类型 如果对文件进行处理比如说 银行等部门对单据先要进行扫描然后录入 校对等处理,那么就要分为不同的批次即不同的
BatchNum 在这
BatchNum 还可能有多个
JobNum 而在每个
JobNum 里存放着文件,有时文件分多页 也就是
PageNum 而进行到最后是将这些单据存到数据库中,只能一页一页的存,问题就出现了 在我们进行扫描 录入 校对 入库时
JobState随之改变 当入库过程中,网络发生中断时, 一个
JobNum 里的
PageNum的JobState就不相同了我们把已入库的设置为“6“未入库的设置为“2” 要进行事务回滚必须要找到出现异常的文件 在这里就要用的关键字“IN”SQL语句如下:
select DocTypeID,BatchNum,JobNum from JobQueue where JobState='2' and BatchNum in(select BatchNum from JobQueue where JobState='6' ) group by DocTypeID,BatchNum,JobNum"
IN的作用就是将两条select语句的结果取并集 这样 一个
JobNum 里如果既有"2"又有''6''就可以查出来
posted on 2006-09-16 21:05
Crespo 阅读(3191)
评论(0) 编辑 收藏 所属分类:
数据库