下面一段代码,我在运行的时候有错误,可能是数据类型不匹配,dj字段的数据类型是货币型,其他的都是文本型。数据库是用Access。错误提示信息为:不正常地定义参数对象,提供了不一致或不完整的信息。
procedure TclXX.Posting;          //提交数据
begin
  if ActionCD='N' then
  BEGIN
  with DM.Qclxx do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO clxx(clbh,clmc,gg,cd,dw,dj,gysbh,gysmc,mem');
    SQL.Add('Values(:clmc,:gg,:cd,:dw,:dj,:gysbh,:gysmc,:mem,:clbh)');
    Parameters.Items[0].Value:=Edit2.Text;
    Parameters.Items[1].Value:=Edit3.Text;
    Parameters.Items[2].Value:=Edit4.Text;
    Parameters.Items[3].Value:=Edit5.Text;
    Parameters.Items[4].Value:=strtocurr(Edit6.Text);
    Parameters.Items[5].Value:=Edit7.Text;
    Parameters.Items[6].Value:=Memo1.Text;
    Parameters.Items[7].Value:=Edit1.Text;
    Prepared:=True;
    ExecSQL;
  end;
  END else
  if ActionCD='M' then
  begin
    With DM.QclXX DO
    begin
      Close;
      SQL.Clear;
      SQL.Add('update clxx Set clmc=:clmc1,');
      SQL.Add('gg=:gg1,cd=:cd1,dw=:dw1,');
      SQL.Add('dj=:dj1,gysbh=:gysbh1,gysmc=:gysmc1,mem=:mem1 Where clbh=:clbh1');
     Parameters.Items[0].Value:=Edit2.Text;
     Parameters.Items[1].Value:=Edit3.Text;
     Parameters.Items[2].Value:=Edit4.Text;
     Parameters.Items[3].Value:=Edit5.Text;
     Parameters.Items[4].Value:=strtocurr(Edit6.Text);
     Parameters.Items[5].Value:=Edit7.Text;
     Parameters.Items[6].Value:=Memo1.Text;
     Parameters.Items[7].Value:=ComboBox1.Text;
     Parameters.Items[8].Value:=Memo1.Text;
     Parameters.Items[9].Value:=DM.DSOclxx.FieldByName('clbh').AsString;
     Prepared:=true;
     ExecSQL;
    end;
  end;
end;