qygoods.Close;
qygoods.SQL.Clear;
qygoods.SQL.Add('update goods');
qygoods.sql.add('set g_exists=g_exists-:total');
qygoods.SQL.Add('where G_ID=:g_id and H_ID=:h_id');
qygoods.parameters[0].value:=qymovedetail.fieldbyname('m_total').AsInteger;
qygoods.parameters[1].value:=qymovedetail.fieldbyname('g_id').AsString;
qygoods.parameters[2].value:=qymove.fieldbyname('outh_id').asstring;
qygoods.ExecSQL;
end;
with datamodule1 do
begin
qygoods.SQL.Add('update goods');
qygoods.sql.add('set g_exists=g_exists+:total');
qygoods.SQL.Add('where G_ID=:g_id and H_ID=:h_id');
qygoods.parameters[0].value:=qymovedetail.fieldbyname('m_total').AsInteger;
qygoods.parameters[1].value:=qymovedetail.fieldbyname('g_id').AsString;
qygoods.parameters[2].value:=qymove.fieldbyname('inh_id').asstring;
qygoods.ExecSQL;
end;

解决方案 »

  1.   

    qygoods.Close;
    qygoods.SQL.Clear;
    qygoods.SQL.Add('update goods');
    qygoods.sql.add('set g_exists=g_exists-:total');
    qygoods.SQL.Add('where G_ID=:g_id and H_ID=:h_id');
    qygoods.parameters[0].value:=qymovedetail.fieldbyname('m_total').AsInteger;
    qygoods.parameters[1].value:=qymovedetail.fieldbyname('g_id').AsString;
    qygoods.parameters[2].value:=qymove.fieldbyname('outh_id').asstring;
    qygoods.ExecSQL;
    end;
    with datamodule1 do
    begin
    qygoods.Close;//----------------
    qygoods.SQL.Clear;//------------>加这两个试试
    qygoods.SQL.Add('update goods');
    qygoods.sql.add('set g_exists=g_exists+:total');
    qygoods.SQL.Add('where G_ID=:g_id and H_ID=:h_id');
    qygoods.parameters[0].value:=qymovedetail.fieldbyname('m_total').AsInteger;
    qygoods.parameters[1].value:=qymovedetail.fieldbyname('g_id').AsString;
    qygoods.parameters[2].value:=qymove.fieldbyname('inh_id').asstring;
    qygoods.ExecSQL;
    end;
      

  2.   

    qygoods是TADOQuery吗?这个问题我也遇上过,我是这样改的,除了加上Close和Clear这两句以外,还要把语句改成qygoods.SQL.Text:='你的SQL语句',只能执行一句哦。