从下面代码可以看出:where 名称:        说明'名称'不能修改,怎改成'名称'也可以修改?
table 编号,名称,品类,单位价格,货位
try
with adoquery do
begin
close;
sql.Clear;
sql.Add('update bhb set 编号=:bh,品类=:pl,单位价格=:dwjg,货位=:hw where 名称=:mc');
Parameters.ParamByName('mc').Value:=trim(edit1.Text);
Parameters.ParamByName('bh').Value:=trim(edit2.Text);
Parameters.ParamByName('pl').Value:=trim(edit3.Text);
Parameters.ParamByName('dwjg').Value:=trim(edit4.Text);
Parameters.ParamByName('hw').Value:=trim(edit5.Text);
execsql;
showmessage('修改成功!');end;
 except
showmessage('修改失败!');
end;

解决方案 »

  1.   

    我使用以下语句,但假如Form里面的控件太多,会出现以后所有的控件属性不能显示出来,只能自己输入!但运行程序没有出现问题?var
      s:string;
    beginwith adoquery do
    begin
      s:=Fields[1].AsString;
    close;
    sql.Clear;
    sql.Add(format('update bhb set 名称=''%s'',编号=''%s'',品类=''%s'',单位价格=%f,货位=''%s'' where 名称=''%s''',
          [trim(clmcedit.Text),
           trim(bhedit.Text),
           trim(pledit.Text),
           StrToFloat(dwjgedit.Text),
           trim(hwedit.Text),s
           ]));
    execsql;
    end;
      

  2.   

    也可以
    try 
    with   adoquery   do 
    begin 
    close; 
    sql.Clear; 
    sql.Add('update   bhb   set   名称=:mc2,编号=:bh,品类=:pl,单位价格=:dwjg,货位=:hw   where   名称=:mc'); 
    Parameters.ParamByName('mc').Value:=trim(edit1.Text); 
    Parameters.ParamByName('mc2').Value:=trim(edit1.Text); 
    Parameters.ParamByName('bh').Value:=trim(edit2.Text); 
    Parameters.ParamByName('pl').Value:=trim(edit3.Text); 
    Parameters.ParamByName('dwjg').Value:=trim(edit4.Text); 
    Parameters.ParamByName('hw').Value:=trim(edit5.Text); 
    execsql; 
    showmessage('修改成功!'); end; 
      except 
    showmessage('修改失败!'); 
    end; 
      

  3.   

    [Pascal Error] test.pas(1): Unable to invoke Code Completion due to errors in source code”会出现以后所有的控件属性不能显示出来,只能自己输入“ 
    例如你输入edit1
    输入.
    会显示edit1的属性出来!,但不会
      

  4.   

    [b][/b]此方法不行try   
    with       adoquery       do   
    begin   
    close;   
    sql.Clear;   
    sql.Add('update       bhb       set       名称=:mc2,编号=:bh,品类=:pl,单位价格=:dwjg,货位=:hw       where       名称=:mc');   
    Parameters.ParamByName('mc').Value:=trim(edit1.Text);   
    Parameters.ParamByName('mc2').Value:=trim(edit1.Text);   
    Parameters.ParamByName('bh').Value:=trim(edit2.Text);   
    Parameters.ParamByName('pl').Value:=trim(edit3.Text);   
    Parameters.ParamByName('dwjg').Value:=trim(edit4.Text);   
    Parameters.ParamByName('hw').Value:=trim(edit5.Text);   
    execsql;   
    showmessage('修改成功!');   end;   
        except   
    showmessage('修改失败!');   
    end;   
      

  5.   

    写错了
    try   
    with       adoquery       do   
    begin   
    close;   
    sql.Clear;   
    sql.Add('update       bhb       set       名称=:mc2,编号=:bh,品类=:pl,单位价格=:dwjg,货位=:hw       where       名称=:mc');   
    Parameters.ParamByName('mc').Value:=trim(edit1.Text);   
    Parameters.ParamByName('mc2').Value:=trim(clmcedit.Text);//这里改一下
    Parameters.ParamByName('bh').Value:=trim(edit2.Text);   
    Parameters.ParamByName('pl').Value:=trim(edit3.Text);   
    Parameters.ParamByName('dwjg').Value:=trim(edit4.Text);   
    Parameters.ParamByName('hw').Value:=trim(edit5.Text);   
    execsql;   
    showmessage('修改成功!');   end;   
        except   
    showmessage('修改失败!');   
    end;   
     
     
     
      

  6.   

    clmcedit.Text
    没有这个控件呀?
    假如有,那还不是一样?
      

  7.   

    Parameters.ParamByName('mc').Value:=trim(edit1.Text); //这里是原先的值      
    Parameters.ParamByName('mc2').Value:=trim(clmcedit.Text);//这里是修改后的值