with adoquery do begin
try
sql.clear;
sql.add('delete from table where id=:id');
parambyname('id').asinteger:=id;
execsql;
except
  cancel;
end;
end;

解决方案 »

  1.   

    查询直接用sql语句的where条件
      

  2.   

    delete from YouTable
    where ProductID=n(n为欲删除的ID号)
      

  3.   

    在commandtext中写sql语句,
    删除要用execsql命令执行。
    返回数据集用open命令。
    ado.commandtext:=''delete from table where id= '+quotedstr(text1.text);
      

  4.   

    给未得我都试了,好像不好使,我把我的代码贴出来,大家看看,帮我改改
    procedure Tingoods.FlatSpeedButton1Click(Sender: TObject);
    begin
    if length(Flatedit1.text)=0 then
    messageDlg('没有输入要出货的商品ID',mterror,[mbcancel],0)
    else
    with ADOQuery1 do
    begin
     sql.clear;
      sql.Add('select * from fac where 商品ID=:Flatedit1.text');
     open;
      if length(Flatedit1.text)<>0  then
      begin
      if messagedlg('确定要删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
      delete;
      end
      else
      messagedlg('没有要出货的商品',mterror,[mbcancel],0);
      Flatedit1.text:='';
      end;
    end;
      

  5.   

    删除纪录的实现:
    var
      sql:string
    sql:='delete from fac 商品ID='+Flatedit1.text;
    ADOQuery1.SQL.clear;
    ADOQuery1.SQL.Add(sql);
    ADOQuery1.ExecSQL;
      

  6.   

    不对,他说我的类型不匹配。我用的是edit.text得到的商品id,商品id是数字,不只应该怎么解决
      

  7.   

    sql.Add('select * from fac where 商品ID=:Flatedit1.text');错了
    这样写:
    adoquery1.close;
    adoquery1.sql.cleaar;
    adoquery1.sql.add('select * from fac where 商品iD=:selectID');
    adoquery1.parambyname('selectID').asstring:=flatedit1.text;
    adoquery1.open
      

  8.   

    呵呵,既然如此,那就改成:
    adlquery1.parambyname('selectID').asinteger:=strtoint(flatedit.text);
      

  9.   

    我按照你的方法作了,打他说我的parambyname没定义mudeen(笑哥哥
      

  10.   

    在Obejct Inspector 中设置ADOQuery的param属性
      

  11.   

    很抱歉,我把adoquery和query弄混了
    adoquery1.Parameters.ParamByName('selectID').Value:=strtoint(flatedit.text);