给表中的每一个记录赋予一个五位的证书编号sCode:
i := 0;
while not table1.eof do
begin
  sCode := inttostr(i);
  while Length(sCode)<5 do
    sCode := '0' + sCode;  // 不足5位的前面补0
  showmessage(sCode);        // 此处显示的都是正确的,从00000开始递增。
  talbe1.edit;
  table1.FieldValues['ZSBH'] := sCode; 
             // 然而存到数据库中的内容都是00000
  table1.post;
 table1.next;
end;

解决方案 »

  1.   

    你应该你判断表中有没有记录吧,如果没有,则在newrecored时赋值为00001
    如果有记录,则查出最大的记录,再加1,你试试
      

  2.   

    你前后的值不是相等了吗?====================================================================
    showmessage(sCode);        // 此处显示的都是正确的,从00000开始递增。
      talbe1.edit;
      table1.FieldValues['ZSBH'] := sCode; 
                 // 然而存到数据库中的内容都是00000
    ==============================================================