程序调用一个存储过程是出现错误,存储过程如下(已成功通过编译):--返回指定日期的日程,输入参数是希望查看的日期,输出参数是当天所有日程
 procedure  getschedulebydate(in_date in date,rdata out pa_rcgl.mycursor) as
  begin
    open rdata for
     select * from scott.task
     where begintime=in_date
     order by task_id;
  end;调用代码如下:procedure Tfrmmain.cmdfindClick(Sender: TObject);
  var finddate:string;
begin
    if dmd.cds.Active then
       dmd.cds.Close ;
    finddate:=datetostr(dtpfind.Date );
    dmd.sspbydate.Params.ParamByName('in_date').Value :=strtodate(finddate);
    try
      dmd.sspbydate.Open ;
    except
      showmessage('err');
    end;    dmd.dsp.DataSet:=dmd.sspbydate ;
    dmd.cds.Open ;
    dmd.cds.Refresh ;
end;错误报告说参数类型或数量错误,数量肯定是没错的,那就是类型了,可类型都是date啊,怎么会错呢

解决方案 »

  1.   

    我怎么没看出来什么地方调用getschedulebydate了……
      

  2.   

    dmd.sspbydate.Params.ParamByName('in_date').Value :=strtodate(finddate); 
    这句的.value改成.asdatetime试试
      

  3.   

    楼上的,不行啊。
    sspbydate是个tsqlstoredproc,过程名设置在控件里了
      

  4.   

    用的什么控件?
    ADOStoredProc这个?
      

  5.   

    自己试用ado控件没问题,应该是dbexpress的bug吧?