var
  MaxID: string;
  ID   : string;implementation{$R *.dfm}procedure TForm4.Edit4Exit(Sender: TObject);
begin
  if (Edit4.Text='') then
    begin
      showmessage('该项不能为空,请输入班别');
      Edit4.SetFocus;
    end
  else
    begin
      ADOQuery2.Close;
      ADOQuery2.SQL.Clear;
      ADOQuery2.SQL.Add('select * from T_Class where F_Class='''+Edit4.Text+'''');
      ADOQuery2.Open;
      if ADOQuery2.RecordCount>0 then
        begin
          ID := ADOQuery2.FieldByName('F_ClassID').AsString;
        end
      else
        begin
          ADOQuery2.Close;
          ADOQuery2.SQL.Clear;
          ADOQuery2.SQL.Add('select Max(F_ClassID) as aa from T_Class');
          ADOQuery2.Open;
          MaxID := ADOQuery2.FieldByName('aa').AsString;
          MaxID := IntToStr(StrToInt(MaxID)+1);
          showmessage(MaxID);                   //这里出错!!
          end;
    end;
end;注: F_ClassID 是T_Class 表中的一个字段,为string 类型

解决方案 »

  1.   

    Project Project2.exe raised exception class EConvertError with message''3       '
    is not a valid integer value'. 注:MaxID=3
      

  2.   

    MaxID := ADOQuery2.FieldByName('aa').AsString;    //这个MaxID=3
      

  3.   

    MaxID=IntToStr(StrToInt(MaxID)+1); //错误出在这儿
    StrToInt中的MaxId='3        ' 后面的一串不知道是不是空格,如果是空格的话用
    MaxID=IntToStr(StrToInt(Trim(MaxID))+1); 就好了, 如果是别的什么东东就得想办法把它去掉, 你跟踪一下看看
      

  4.   

    MaxID := Trim(ADOQuery2.FieldByName('aa').AsString);
      

  5.   

    感谢小虫和鸟兄,你们说对了,是那个空格问题,因为ID字段的长度问题.要 Trim(..)才能相加的,问题解决了.