问题如下:ADOQ_perbase为一个ado的查询  1.  dm1.ADOQ_perbase.Edit;
  2.  dm1.ADOQ_perbase.FieldByName('评审结果赞').AsInteger:=zc;
  3.  dm1.ADOQ_perbase.FieldByName('评审结果反').AsInteger:=fd;
  4.  dm1.ADOQ_perbase.FieldByName('评审结果弃').AsInteger:=qq;
  5.  dm1.ADOQ_perbase.Post;执行到5的时候就会引发class EoleException 的一个异常提示信息为'查询过于复杂'.ADOQ_perbase的sql属性为'select * from 参评人员 where 评审通过 is null'究竟是什么原因?

解决方案 »

  1.   

    1.  dm1.ADOQ_perbase.Edit;
    2.  dm1.ADOQ_perbase.Insert;
    3.  dm1.ADOQ_perbase.Append;
    4.  dm1.ADOQ_perbase.FieldByName('评审结果赞').value:=zc;
    //或者是dm1.ADOQ_perbase.FieldByName('评审结果赞') :=zc;
    .
    .
    .
    n.  dm1.ADOQ_perbase.Post;
      

  2.   

    if   dm1.ADOQ_perbase.RecNO>0 then
           dm1.ADOQ_perbase.Edit
     else
          dm1.ADOQ_perbase.Append;
      2.  dm1.ADOQ_perbase.FieldByName('评审结果赞').AsInteger:=zc;
      3.  dm1.ADOQ_perbase.FieldByName('评审结果反').AsInteger:=fd;
      4.  dm1.ADOQ_perbase.FieldByName('评审结果弃').AsInteger:=qq;
      5.  dm1.ADOQ_perbase.Post;
      

  3.   

    直接使用sql语句处理不行吗?update 参评人员 set 评审结果=zc,评审结果反=fd,评审结果弃=qq 
    where 评审通过 is null
      

  4.   

    在插入之前设置PREPARED:=TRUE;