数据库是sql2000,arrdt、curdate是日期型变量,acctnum是字符串型变量
      With AdoQuery1 Do
      Begin
      Sql.Clear;
      Sql.Add('select top 1 rm_amt as rm_amt from acctfee where acct_num='''+acctnum+'''');
      Sql.Add('and dateadd("dd",days-1,:arrdt)>=:curdate and dateadd("dd",days-1,:arrdt)<=:curdate');
      Parameters.ParamByName('arrdt').Value:=arrdt;
      Parameters.ParamByName('curdate').Value:=curdate;
      Open;
open为什么会报exception class EOleException with message
'不正常地定义参数对象。提供了不一致或不完整的信息。'
Process stopped.Use Step or Run to continue

解决方案 »

  1.   

          With AdoQuery1 Do
          Begin
          Sql.Clear;
          Sql.Add('select top 1 rm_amt as rm_amt from acctfee where acct_num='''+acctnum+'''');
          Sql.Add('and dateadd("dd",-1,:arrdt)>=:curdate and dateadd("dd",-1,:arrdt)<=:curdate');
          Parameters.ParamByName('arrdt').Value:=formatdatetime('yyyy-MM-dd',arrdt);
          Parameters.ParamByName('curdate').Value:=formatdatetime('yyyy-MM-dd',curdate);
          Open;
    看看这样行不
      

  2.   

    已经解决了 是因为同一个参数用2次 要用不同的名字 Parameters.ParamByName('arrdt').Value:=formatdatetime('yyyy-MM-dd',arrdt);
          Parameters.ParamByName('curdate').Value:=formatdatetime('yyyy-MM-dd',curdate);还是多谢大家