id号总共12位不变,8位日期+4位流水号,数据库中类型为varchar,每当增加记录时,我在程序中要对后四位流水号最大的那个进行增1操作,我是这样写的
dataset.CommandText :='select max(right(id,4)) as version from table';
dataset.Open;
getid := FormatDateTime('YYYYMMDD',now)+inttostr(dataset.fieldbyname  ('version').Asinteger+1);
这样虽然可以实现增1,但是它自动把0001转化为1了,最后变成了9位,我不想让它省略前面的0,该怎么实现!

解决方案 »

  1.   

    getid := FormatDateTime('YYYYMMDD',now)+format("%4d",dataset.fieldbyname  ('version').Asinteger+1);
      

  2.   

    FormatDateTime('YYYYMMDD',now)+......
    StringOfChar('0',4-整数的长度);
    也就是说,当1,长度为1,即在前面多加3个‘0’,
      

  3.   

    getid := FormatDateTime('YYYYMMDD',now)+FormatFloat('0000',dataset.fieldbyname('version').Asinteger+1);
    这样也可以
      

  4.   

    inttostr(dataset.fieldbyname  ('version').Asinteger+1);
    对这段用Format啊。