为什么运行的时候出现找不到参数'project_id'的错误。
with QueryExec do
  begin
    Close;
    SQL.Clear;
    SQL.Add('insert into table(project_id,q_set,type,rank)');
    SQL.Add(' values(:project_id, :qset, :qtype, :qrank)');
    Parameters.paramValues['project_id']:=QueryPro['id'];
    Parameters.ParamValues['qset']:=comboboxQset.Text;
    Parameters.ParamValues['qtype']:=comboboxQtype.Text;
    Parameters.ParamValues['qrank']:=comboboxQrank.Text;
    ExecSQL;
  end;

解决方案 »

  1.   

    with QueryExec do
      begin
        Close;
        SQL.Clear;
        SQL.Add('insert into table(project_id,q_set,type,rank)');
        SQL.Add(' values(:project_id, :qset, :qtype, :qrank)');
        prepare;//這一句不能少
        Parameters.paramValues['project_id']:=QueryPro['id'];
        Parameters.ParamValues['qset']:=comboboxQset.Text;
        Parameters.ParamValues['qtype']:=comboboxQtype.Text;
        Parameters.ParamValues['qrank']:=comboboxQrank.Text;
        ExecSQL;
      end;
      

  2.   


        Parameters.paramValues['project_id']:=QueryPro['id'];  这句中的QueryPro['id'];  是不应该有类型呀
      

  3.   

    SQL.Add('insert into table(project_id,q_set,type,rank)');
        SQL.Add(' values(:project_id, :qset, :qtype, :qrank)');
        prepare;//這一句不能少
        Parameters.paramValues['project_id']:=QueryPro['id'];
    ------------------------------------------------------------
    SQL.Add(' values(:XXXXX_id, :qset, :qtype, :qrank)')
    变量名和字段重复了吧?强烈建议你换了之后再说
      

  4.   

    谢谢各位,我发现原因了,是query组件的connection属性没有设置。
    prepare不一定要的,delphi会自动执行,变量名和字段重复也没关系的