向表里插入记录时,提示我的语句错误,不知道错在哪里,希望大家给与分析var lastfno : integer;
begin
        adoquery1.close;//最大序号
        adoquery1.SQL.clear;
        adoquery1.SQL.add('select max(fno) as maxfno  from fclzh');
        adoquery1.open;      lastfno := adoquery1.fieldbyname('maxfno').asinteger+1;
       .
       .
      adoquery2.SQL.add('insert into fclzh(fno) values(''''+lastfno+'''')');
       .
       .
      adoquery2.execsql;
  //fno字段为int

解决方案 »

  1.   

    adoquery2.SQL.add('insert into fclzh(fno) values('''+lastfno+''')');
      

  2.   

    不行就用参数匹配
    with ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add('insert into fclzh(fno) values (:fno)');
        Parameters.ParamByName('fno').Value := lastfno;
        ExecSQL;
      end;
      

  3.   

    adoquery2.SQL.add('insert into fclzh(fno) values('''+inttostr(lastfno)+''')');
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var lastfno : integer;
    begin
        adoquery1.close;//最大序号
        adoquery1.SQL.clear;
        adoquery1.SQL.add('select max(fno) as maxfno  from fclzh');
        adoquery1.open;
        if adoquery1.Eof then lastfno := 1 else
          lastfno := adoquery1.fieldbyname('maxfno').asinteger+1;
        adoquery2.Close;
        adoquery2.SQL.Clear;
        adoquery2.SQL.add('insert into fclzh(fno) values('+IntToStr(lastfno)+')');
        adoquery2.execsql;end;
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var lastfno : integer;
    begin
        adoquery1.close;//最大序号
        adoquery1.SQL.clear;
        adoquery1.SQL.add('select max(fno) as maxfno  from fclzh');
        adoquery1.open;
        if adoquery1.Eof then lastfno := 1 else
          lastfno := adoquery1.fieldbyname('maxfno').asinteger+1;
        with adoquery2 do
        begin
          close;
          sql.Text := ' insert into fclzh(fno) values(:fno)';
          parameters.ParamByName('fno').Value := lastfno;
          ExecSql;
        end;
        {adoquery2.Close;
        adoquery2.SQL.Clear;
        adoquery2.SQL.add('insert into fclzh(fno) values('+IntToStr(lastfno)+')');
        adoquery2.execsql;
        }
    end;这样写也没有问题。
      

  6.   

    兄弟们那,我现在可明白了,int的字段要用要把变量转换成string才能插入,谢谢兄弟们了
    谢谢阿日。