两个dbGrid,左边一个显示的是flag是0的列表,右边一个是显示flag为1的列表,都是对同一张表进行操作,只是状态不同,中间有按钮可把flag改0改1,请问按钮中的代码如何写??
   update_query.Close;
   update_query.SQL.Clear;
   update_query.SQL.Add('update besttone_team set flag=''1'' where p_name=:p_name');
   update_query.Prepare;
   update_query.ExecSQL;是不是少了什么?上面代码不行

解决方案 »

  1.   

    with ADOQuery1 do
    begin
        close;
        sql.Clear;
        sql.Add('update besttone_team set flag=1 where p_name=:p_name');
        Parameters.ParamByName('p_name').Value := Edit.Text;//要给参数值
        ExecSQL;
    end;
      

  2.   

    我只有两种参数,就是从0改成1,从1改成0,不需要填什么edit.text,就是两个按钮,0到1,1到0,这样应该怎么写?
      

  3.   

    你的参数值没有传给SQL语句的吧~
      

  4.   

    with ADOQuery1 do
    begin
        close;
        sql.Clear;
        sql.Add('update besttone_team set flag=~isnull(flag,0)');
        ExecSQL;
    end;
      

  5.   

    上面的是取反你要的可能是下面的结果:分开写
    with ADOQuery1 do
    begin
        close;
        sql.Clear;
        sql.Add('update besttone_team set flag=0');
        ExecSQL;
    end;with ADOQuery1 do
    begin
        close;
        sql.Clear;
        sql.Add('update besttone_team set flag=1');
        ExecSQL;
    end;
      

  6.   

    这么写就是把所有的flag都置为0,或者1了,这个功能我实现了,现在就是想根据鼠标的点击,有选择性的把0改为1,或是1改为0!其中p_name是唯一的
      

  7.   

    update_query.Close;
    update_query.SQL.Clear;
    update_query.SQL.Add('update besttone_team set flag=''1'' where p_name=:p_name');
                                                           //dbgrid是你左边grid的名称
    update_query.sql.paramters.parambyname('p_name').value:=dbgrid.datasource.dataset.fieldbyname('p_name').asstring;update_query.Prepare;
    update_query.ExecSQL;
      

  8.   

    这样搞还不如一个个写呢~~`把Button2的Click指向Button1Clickprocedure TDfrm_Indepot.Button1Click(Sender: TObject);
    var
      flag: boolean;
      sqlstr: string;
    begin
      inherited;
      flag := (Sender = Button2);//如果按下的是Button2
      if flag then
        sqlstr:= 'update besttone_team set flag=1'
      else
        sqlstr:= 'update besttone_team set flag=0'  with ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add(sqlstr);
        ExecSQL;
      end;
    end;