procedure Twingroupfrm.BitBtn1Click(Sender: TObject);
begin
  with mindatamodule.adogroup do
        begin
        first;
        insert;
        fieldbyname('group_no').AsString:=combobox1.Text;
        fieldbyname('group_name').AsString:=edit1.Text;
        fieldbyname('group_desc').AsString:=edit2.Text;
        post;
        end;
end;
以上即是源代码,但是一运行即提示“field 'group_no' not found'",'group_no'字段没有发现,但是我的表中明明有此字段,并且表名、连接都没有问题,真不知是错在那里,肯请那位大师指点,可能出现的原因,急啊!为这一点问题去了我将近二天的时间了,本人在线等待!!

解决方案 »

  1.   

    showmessage(fieldbyname('group_no').AsString);
    看能不能取到值...?
      

  2.   

    从上面看来adogroup应该是SELECT语句,所以你可以试试在adogroup增加永久字段,应该就没有问题了。
      

  3.   

    双击adogroup控件,看看弹出的框中,正常应该为空或者包含所有要显示或修改字段,楼主的可能有其它字段而没有'group_no'
      

  4.   

    是否建立了参数
    右键--Add all Fields看看
      

  5.   

    insert;
    EIDT;
            fieldbyname('group_no').AsString:=combobox1.Text;
      

  6.   

    并且在adogroup中右键--Add all Fields永久性字段后,只要combobox1中一输入数据,即出现提示“field 'group_no' not found'",'group_no'字段没有发现,确定后再输入,按下键后,即出现了提示'connt perform this opration on a closed dataset'的错误,
      

  7.   

    参考下面全部改写你的代码:with adoquery1 do
      begin
        close;
        sql.clear;
        sql.Add('insert into tab_admin(userid,usname,password,usright, sdate,   
                 edate) values(:userid, :usname, :password, :usright, :sdate, 
                :edate)');
        Parameters.ParamByName('userid').Value:=trim(ed_userid.Text);
        Parameters.ParamByName('usname').Value:=trim(ed_usname.Text);
        Parameters.ParamByName('password').Value:=trim(ed_password.Text);
        Parameters.ParamByName('usright').Value:=trim(com_right.Text);
        Parameters.ParamByName('sdate').Value:=pk_sdate.date;
        Parameters.ParamByName('edate').Value:=pk_edate.date;
        Prepared;
        ExecSQL;
      end;