如果 GZGBZWGZ.开始执行时间 为tdatetime
Parameters.ParamByName('a').asdatetime:=StrtoDatetime('2000-01-01');
如果  GZGBZWGZ.开始执行时间 为整数类型
Parameters.ParamByName('a').asinterer:=2000;

解决方案 »

  1.   

    如果 GZGBZWGZ.开始执行时间 为tdatetime
    Parameters.ParamByName('a').asdatetime:=StrtoDatetime('2000-01-01');
    如果  GZGBZWGZ.开始执行时间 为整数类型
    Parameters.ParamByName('a').asinterer:=2000;
      

  2.   

    你参数的VALUE也要对应相应的类型,就像楼上说的!
      

  3.   

    to netlib 好象不行哦~~ 我试了!year(Tdatetime)得到的是int 还是str?
      

  4.   

    欲哭无泪了~ 5555555555555555parambyname('a').asinteger和 .asdatetime都报错 undeclared 
    asinteger
      

  5.   

    GZGBZWGZ.开始执行时间
    应该是datetime类型而你的
    Parameters.ParamByName('a').Value:='2000';
    得到的是string类型,比不出来,同样用datetime类型就可以比较出来
    或是你把datetime转为string然后(不知道你的时间是不是如:2000-4-19)
    把2000取出来,比较就可以了!
      

  6.   

    不是上面各位大虾说的类型不匹配的问题,因为我也试过了你们说的我又用存贮过程做 adostoredproc1.Parameters.ParamByName('@职务级别').Value:=combobox1.Text;
       Adostoredproc1.Parameters.ParamByName('@职务工资').Value:=strtoint(combobox2.Text);
       adostoredproc1.Parameters.ParamByName('@开始执行时间').Value:=Datetimepicker1.datetime;
       adostoredproc1.ExecProc;
       application.MessageBox(pchar(combobox1.Text+'级的职务工资已经晋升完毕'+#10+'请选择下一职务级别'),'系统提示!',mb_ok+mb_iconinformation);
     end;老是报找不到参数的错误~~~~~~~!!!
    有时候又报地址错误~~~  ( 存储过程语法检验正确)(类型绝对匹配)各位大虾再帮帮忙吧~~~~~ 真命苦啊~