随笔-11  评论-5  文章-1  trackbacks-0
列名:
FileName DocTypeID     BatchNum JobNum  PageNum   JobState
文件名      文件的类型      批次号     Job号      页数           文件的状态值
 
       具体的逻辑是:文件分不同的DocTypeID即文件的类型 如果对文件进行处理比如说 银行等部门对单据先要进行扫描然后录入 校对等处理,那么就要分为不同的批次即不同的BatchNum 在这BatchNum 还可能有多个JobNum  而在每个JobNum 里存放着文件,有时文件分多页 也就是PageNum    而进行到最后是将这些单据存到数据库中,只能一页一页的存,问题就出现了 在我们进行扫描 录入 校对 入库时JobState随之改变  当入库过程中,网络发生中断时, 一个JobNum 里的PageNumJobState就不相同了我们把已入库的设置为“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)  编辑  收藏 所属分类: 数据库

只有注册用户登录后才能发表评论。


网站导航: