用ADOQuery执行delete和update的SQL语句时,总出现“期待参数是1”的错误提示。
大家知道是什么问题吗?我想我的SQL语句是没有错的。

解决方案 »

  1.   

    SQL语句如下:procedure TForm4.BitBtn4Click(Sender: TObject);
    var fil:string;
    begin
    if MessageDlg('删除此条记录?',mtConfirmation,[mbYes,mbNo],0)=mrNo then
    exit;fil:='';if trim(dbedit12.Text)<>'' then
    fil:='类型='+quotedstr(trim(dbedit12.text));if trim(dbedit13.Text)<>'' then
    if fil='' then
    fil:='名称='+quotedstr(trim(dbedit13.text))
    else
    fil:=fil+' and 名称='+quotedstr(trim(dbedit13.text));if trim(dbedit14.Text)<>'' then
    if fil='' then
    fil:='规格='+quotedstr(trim(dbedit14.text))
    else
    fil:=fil+' and 规格='+quotedstr(trim(dbedit14.text));if trim(dbedit15.Text)<>'' then
    if fil='' then
    fil:='品牌='+quotedstr(trim(dbedit15.text))
    else
    fil:=fil+' and 品牌='+quotedstr(trim(dbedit15.text));if trim(dbedit16.Text)<>'' then
    if fil='' then
    fil:='车型='+quotedstr(trim(dbedit16.text))
    else
    fil:=fil+' and 车型='+quotedstr(trim(dbedit16.text));if trim(dbedit17.Text)<>'' then
    if fil='' then
    fil:='通用车型='+quotedstr(trim(dbedit17.text))
    else
    fil:=fil+' and 通用车型='+quotedstr(trim(dbedit17.text));if fil<>'' then
    begin
    with adoquery3 do
    begin
    try
    close;
    sql.clear;
    sql.Add('update 配件 set 库存量=库存量+'+dbedit20.Text+',出货总数=出货总数-'+dbedit20.Text+',出货总额=出货总额-'+dbedit21.Text+' where '+fil);execsql;
    adoquery2.Delete;
    except
    raise;
    end;
    end;
    end;end;
      

  2.   

    adoquery2.Delete;是什么意思?
    根本就没有。
      

  3.   

    DBGrid1与ADOQuery2关联,以上dbedit12-17都是与ADOQuery2关联的,即当选择dbgrid1中的某一行时并点删除按钮BitBtn4时,在删除此行记录前先把“类别,名称,规格,品牌,车型,通用车型”所对应的另一个表“配件”中的一些数据更新。问题是当执行这个
    sql.Add('update 配件 set 库存量=库存量+'+dbedit20.Text+',出货总数=出货总数-'+dbedit20.Text+',出货总额=出货总额-'+dbedit21.Text+' where '+fil);
    总会出现“期待参数是1”的错误提示。
      

  4.   

    补充一下:adoquery2.Delete;就是删除选中的记录。