我现在做一个打印连纸的问题,我打印一个向发票一样的单子,所有打印出来的序号需要连续,并且再进行打印时就需要接着原来的序号进行打印。这种方法如何实现,我向先把连续的号码导入数据库,然后打一次删掉这个号码,但是我这个号码永远是有限制的(我的是6位),请问一下高手,有没有这方面的成熟技术?

解决方案 »

  1.   

    如果数据库支持序列(例如Oracle)则直接使用数据库的序列即可,每次从数据库中 Select seq.nextval() 即可取下一个序号。如果数据库不支持序列,则建立序列表,seq (lock char(1), val number(10)), 每次 update seq set lock=1 where lock=0; select val from seq
    即可取得当前序号,然后 update seq set val = val+1, lock =0。 lock 字段用于在多用户环境下进行共享锁,如果没有多用户,则不需要锁定