??? i不就是max-id,max_id为空时, i当然应该为空!id 是不是必须要有值?如果是,判断query是否有记录不行妈?
1:无记录,max_id:='000100000001'  
2:有记录:max_id:='000'+inttostr(strtoint(copy(i,4,9))+1);
      

解决方案 »

  1.   

    不对,max_id 不是 i,
    奇怪的事明明有记录,分布调试偏偏显示max_id='';
    procedure TF_ADD.FormCreate(Sender: TObject);
    var  i,max_id:string;
    begin
      with tquery.Create(self) do
        begin
          databasename:='dd2100';
          sql.add('select max(id) from zlgl_khzl');
          active:=true;
          i:=fields[0].asstring;                                         //i=000100000003
          free;
        end;    if i=''then
          max_id:='000100000001'  //'00'+current_xz_code+'00000001'
        else
          begin
              max_id:='000'+inttostr(strtoint(copy(i,4,9))+1);
                  // max_id:='ytrht';  此处把注释去掉,常常引起max_id为空
                     //                    ,为什么不能符值呢,偏偏有时候可以符值
          end;
    end;
    这里 i 从数据库中点出
      

  2.   

    建议把响应事件从FormOnCreat改成FormOnShow