我现在需要的是这样编号:比如今天是2010.9.15,入库商品的编号统一为T20100915001,T20100915002等等
第二天,也就是2010.9.16,入库商品编号统一变为T20100916001,T20100915002等等
就是把中间那个日期编号编号,每天编号都从001号开始if ADOQuery1.RecordCount=0 then
  begin
    sptxm:='T'+FormatDateTime('yyyymmdd',Now())+Formatfloat('000',1)
  end else
  begin
    sptxm:='T'+FormatDateTime('yyyymmdd',Now())+Formatfloat('000',strtoint(copy(ADOQuery1.Fields[0].Asstring,10,3))+1);
  end;
原先是这样写的,中间日期变化,但每天的编号不是从001开始的,不知道怎么写了。

解决方案 »

  1.   

    日期变化时,把日期编程20100916样式,然后去查找是否有它的信息,如果没有就从001开始,如果有就找到最大的那个,然后加一,用sql很好实现
      

  2.   

    最好在一个sql里完成
    如果程序先查询得到最大值,再加一再插入,期间可能有别的程序也执行了
      

  3.   

    应该是 你adoquery1 里面的sql 写错了~Adoquery1的sql语句 一定要包含条件 where 编号 like 'T'+FormatDateTime('yyyymmdd',Now())+'%'
      

  4.   

    duxing00一语惊醒梦中人啊,是我忘写条件语句了,非常感谢!~