delphi 中怎么样用代码添加存储过程的参数。
我用BDE的stredproc调用存储过程,要在设计时属性里指定存储过程名,然后用params里自动找到存储过程的参数。这样可以正常运行调用存储过程。我想设计时不指定存储...
我用BDE 的 stredproc调用存储过程,要在设计时属性里指定存储过程名,然后用params里自动找到存储过程的参数。这样可以正常运行调用存储过程。
我想设计时不指定存储过程名,想在代码中指定要运行的存储过程,手动添加参数:用 proc_login1.Params.AddParam('@uname_1');或者proc_login1.Parameters.AddParameter.Name:='@uname_1';代码都出错。
然后我用BDE 的 stredproc属性指定运行的存储过程名(设计时)按它自动找到的参数记下来,然后删除BDE 的 stredproc的属性指定的存储过程,手动添加到params里,打算在运行的时候指定存储过程名。都不能正常运行。
如果每次运行调用存储过程都要在设计的时候指定存储过程名,让他自动生成参数的话,那在运行时就无法为控件更改存储过程名,那我添加、修改、删除3个功能就要添加3个storedproc控件,这样好像太麻烦了。
能告诉我问题出在哪里吗?
回一楼:首先spTemp.Parameters.ParamByName('@start_rq').Value:= 里面的 Parameters.关键字在运行的时候就通不过,一定要删除变成spTemp.ParamByName('@start_rq').Value:= 才可以。可能你用的是ADO的PROC。还有按你这样写,运行的时候提示找不到参数。 展开
我想设计时不指定存储过程名,想在代码中指定要运行的存储过程,手动添加参数:用 proc_login1.Params.AddParam('@uname_1');或者proc_login1.Parameters.AddParameter.Name:='@uname_1';代码都出错。
然后我用BDE 的 stredproc属性指定运行的存储过程名(设计时)按它自动找到的参数记下来,然后删除BDE 的 stredproc的属性指定的存储过程,手动添加到params里,打算在运行的时候指定存储过程名。都不能正常运行。
如果每次运行调用存储过程都要在设计的时候指定存储过程名,让他自动生成参数的话,那在运行时就无法为控件更改存储过程名,那我添加、修改、删除3个功能就要添加3个storedproc控件,这样好像太麻烦了。
能告诉我问题出在哪里吗?
回一楼:首先spTemp.Parameters.ParamByName('@start_rq').Value:= 里面的 Parameters.关键字在运行的时候就通不过,一定要删除变成spTemp.ParamByName('@start_rq').Value:= 才可以。可能你用的是ADO的PROC。还有按你这样写,运行的时候提示找不到参数。 展开
2个回答
展开全部
给你看下我的,全部在代码里指定不就行了么。
spTemp.Close;
spTemp.ProcedureName:= 'pr_hour_sale';
spTemp.Parameters.Refresh;
spTemp.Parameters.ParamByName('@start_rq').Value:= sDateBegin; //'2010-05-01';
spTemp.Parameters.ParamByName('@end_rq').Value:= sDateEnd; //'2010-05-01';
spTemp.Parameters.ParamByName('@bmh').Value:= sDeptCode;
spTemp.Parameters.ParamByName('@table_from').Value:= '1';
spTemp.Parameters.ParamByName('@hour_t').Value:= sHourStep;
spTemp.Open;
dsTemp.Recordset:= spTemp.Recordset;
spTemp.Close;
spTemp.ProcedureName:= 'pr_hour_sale';
spTemp.Parameters.Refresh;
spTemp.Parameters.ParamByName('@start_rq').Value:= sDateBegin; //'2010-05-01';
spTemp.Parameters.ParamByName('@end_rq').Value:= sDateEnd; //'2010-05-01';
spTemp.Parameters.ParamByName('@bmh').Value:= sDeptCode;
spTemp.Parameters.ParamByName('@table_from').Value:= '1';
spTemp.Parameters.ParamByName('@hour_t').Value:= sHourStep;
spTemp.Open;
dsTemp.Recordset:= spTemp.Recordset;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询