sql server中的存储过程名为total,包含两个参数,@begin_time和@end_time',都是datetime类型
我用ADOStoredProc调用该存储过程
结果delphi运行到ExecProc时报错:
project m.exe raised exception class EOLeException with message '将数据类型varchar转化成datetime时出错。' 请问,为什么会这样啊??我在sql server的查询分析器中exec total @b_time='2004-05-06 07:08:09',@e_time='2004-05-07 07:08:09',是可以正常运行的。ADOStoredProc1.ProcedureName:='total';
ADOStoredProc1.Parameters.ParamByName('@begin_time').value:=strtodatetime(datetostr(DateTimePicker1.Date)+' ' + timetostr(datetimepicker2.Time));
ADOStoredProc1.Parameters.ParamByName('@end_time').value:=strtodatetime(datetostr(datetimepicker3.Date)+' ' + timetostr(datetimepicker4.Time));
ADOStoredProc1.ExecProc ;
我用ADOStoredProc调用该存储过程
结果delphi运行到ExecProc时报错:
project m.exe raised exception class EOLeException with message '将数据类型varchar转化成datetime时出错。' 请问,为什么会这样啊??我在sql server的查询分析器中exec total @b_time='2004-05-06 07:08:09',@e_time='2004-05-07 07:08:09',是可以正常运行的。ADOStoredProc1.ProcedureName:='total';
ADOStoredProc1.Parameters.ParamByName('@begin_time').value:=strtodatetime(datetostr(DateTimePicker1.Date)+' ' + timetostr(datetimepicker2.Time));
ADOStoredProc1.Parameters.ParamByName('@end_time').value:=strtodatetime(datetostr(datetimepicker3.Date)+' ' + timetostr(datetimepicker4.Time));
ADOStoredProc1.ExecProc ;
FormatDateTime('yyyy-mm-dd hh:nn:ss',YourDateTime)后传入储存过程。
在储存过程中用Cast转换为日期型变量。
应该可以解决的。
ADOStoredProc1.Parameters.clear;
ADOStoredProc1.Parameters.createparam(,,,,);//创建参数
ADOStoredProc1.Parameters.ParamByName('@begin_time').value:=strtodatetime(datetostr(DateTimePicker1.Date)+' ' + timetostr(datetimepicker2.Time));
ADOStoredProc1.Parameters.createparam(,,,,);//创建参数,内容你自己填写吧。^_^
ADOStoredProc1.Parameters.ParamByName('@end_time').value:=strtodatetime(datetostr(datetimepicker3.Date)+' ' + timetostr(datetimepicker4.Time));
ADOStoredProc1.ExecProc ;