存储过程的问题(100分)

K

kscitic

Unregistered / Unconfirmed
GUEST, unregistred user!
我的存储过程是这样的:
create procedure get2
@WDH CHAR(6),
@RQ datetime
AS
SELECT * FROM RJB WHERE wdh=@wdh and nyr=@rq
我在调用的时候:
procedure TForm1.Button1Click(Sender: TObject);
begin
//先关闭ADOStoredProc对象
ADOStoredProc1.Close;
//设置参数
ADOStoredProc1.Parameters.ParamByName('@WDH').Value := Edit1.Text;
ADOStoredProc1.Parameters.ParamByName('@RQ').Value := DATETIMEPICKER1.Date;
//打开TADOStoredproc对象
ADOStoredProc1.Open;
end;
我在ADOStoredProc1的PARAMETERS属性里设参数的时候将@RQ设成DATE了(因为没有DATETIME型不知是否这里出错).
执行以后不返回数据,请问一般什么地方出错?
 
应该不会有问题啊!我这边可以啊!
 
将DATETIMEPICKER1.Date转换成字符型
FormatDateTime('日期格式',DATETIMEPICKER1.Date)
 
SELECT * FROM RJB WHERE wdh=@wdh and nyr=@rq
改为
SELECT * FROM RJB WHERE wdh=@wdh and Convert(VARCHAR(10),nyr,120)=@rq
试试
 
是不是参数类型不对,edit1.text是String类型.
 
我通过DELPHI6传递参数到SQL2000执行一个存储过程,参照你的例子,我试不成功。提示为:
ADOStoredProc1.Parameters “@code not found',
请各位大使先生帮忙
 
[:)][:D][8D][:)][:)][:)][:)][:)]
 
with adoquery1 do
begin
close;
sql.clear;
sql.add('exec get2'+''''+你的参数+..
open;
end;
注意你参数的类型
 
大使先生:

非常谢谢!

我用你的办法,成功了!!!!!

Joe

 
此贴已结
 
顶部