出库单号2009100001
为啥我开始时候没有单号 200910****在 保存单据数据的事件里找到表里最大的号码+1生成出库号码为什么会出现2个操作员的单据数据跑到1个单号上了?????

解决方案 »

  1.   

    以上保存数据事件中
    begin
    查找最大编号+1
    开始事务
    保存数据
    结束事务还是有重复单号。
      

  2.   

    to:ZuoBaoquan
    那么怎么来限制呢?我用的ADO事务开始事务
    查找最大编号+1
    保存数据
    结束事务 
    ????
      

  3.   

    思路是对的,问题是为什么不用一个单独的表来保存这些编号呢?
    比如:Numbers表 (TypeCode, NextNumber)
    每种类型的单据各一个记录。这样,再配合RepeatableRead隔离级别和行锁定,效率会更好一些。
      

  4.   

    你直接把单号那一列设为主KEY,不允许重复,再针对报错进行处理,如果是因为重复而报错,就加1...
    我就不相信还会有重号....
      

  5.   

    跳号是跳号的问题,你现在的解决方式本身就有问题,因此,你先要保证提交的号码不重复再说。
    建议你建个新表来保存当前最大号码,然后在数据确定提交的时候,向数据库服务器获得最大号(以select from update的方式获得),并修改最大号码,这样能最大限度保证不跳号。
      

  6.   

    我是这样解决的,建个表保存最大单号,然后:begin tran
    最大单号:=最大单号+1
    select 最大单号
    commit tran