ADOQUERY调用SQL SERVER 里的存储过程的时,,,存储过程的返回值,程序要怎么去捕捉它.!?
我的存储过程如下:
/*
功能描述:判断给定的@Ad_ID nvarchar(3),@Ad_Password nvarchar(20)是否为合法用户.
参数表:@Ad_ID nvarchar(3),@Ad_Password nvarchar(20)
返回值:若用户名或密码为空返回-1,为合法用户返回1,否则返回0。*/
CREATE PROCEDURE sp_ADM_Login
@Ad_ID nvarchar(3),
@Ad_Password nvarchar(20)
AS
if @Ad_ID='' or @Ad_Password=''
return -1
select * from admin where Ad_id=@ad_id and Ad_Password=@Ad_Password
if @@rowcount<>0
return 1
else
return 0
GO
with M_DataModule.ADOQuery do
begin
Close;
Sql.Clear;
Sql.Add('Exec sp_Adm_Login "'+User_ComboBox.Text+'","'+Pass_Edit.Text+'"');
Parameters.CreateParameter('@Retrun_Value',ftinteger,pdReturnValue,0,0);
ExecSql;
Showmessage(inttostr(Parameters.ParamByName('@Retrun_Value').Value));
end;
可是这样取到的返回值每次都是0.
显然这种方法有错...有哪位大哥能指点一下是哪错了!??????????????????
我的存储过程如下:
/*
功能描述:判断给定的@Ad_ID nvarchar(3),@Ad_Password nvarchar(20)是否为合法用户.
参数表:@Ad_ID nvarchar(3),@Ad_Password nvarchar(20)
返回值:若用户名或密码为空返回-1,为合法用户返回1,否则返回0。*/
CREATE PROCEDURE sp_ADM_Login
@Ad_ID nvarchar(3),
@Ad_Password nvarchar(20)
AS
if @Ad_ID='' or @Ad_Password=''
return -1
select * from admin where Ad_id=@ad_id and Ad_Password=@Ad_Password
if @@rowcount<>0
return 1
else
return 0
GO
with M_DataModule.ADOQuery do
begin
Close;
Sql.Clear;
Sql.Add('Exec sp_Adm_Login "'+User_ComboBox.Text+'","'+Pass_Edit.Text+'"');
Parameters.CreateParameter('@Retrun_Value',ftinteger,pdReturnValue,0,0);
ExecSql;
Showmessage(inttostr(Parameters.ParamByName('@Retrun_Value').Value));
end;
可是这样取到的返回值每次都是0.
显然这种方法有错...有哪位大哥能指点一下是哪错了!??????????????????
@Ad_ID nvarchar(3),
@Ad_Password nvarchar(20),
@value int output --返回值,调用时传递一个变量
AS……
return @value