我看了CSDN以前的帖子,要不看不懂,要不就是出错,到底该怎么得到啊?
我做的一个普通的登陆功能:
procedure TForm_logo.Button1Click(Sender: TObject);
begin
  with adoStoredProc1 do
  begin
    Close;
    ProcedureName:='xueji_check;1';
    Prepared:=true;
    Parameters.Refresh;    Parameters.ParamValues['@user_name']:= edit1.Text;    if RaB_stu.Checked then
      Parameters.ParamValues['@authority']:= 1
    else if RaB_academy.Checked then
      Parameters.ParamValues['@authority']:= 2
    else
      Parameters.ParamValues['@authority']:= 3;    ExecProc;
    edit1.Text := 存储过程的返回值;
  end;
end;存储过程如下:
CREATE PROCEDURE xueji_check@user_name varchar(50),
@authority varchar(10)ASdeclare @abc int
select @abc=count(*) from xj_user
where username=@user_name and authority=@authority
return @abc
GO

解决方案 »

  1.   

    也就是获取  @abc  这个值,大大们,帮帮小弟啊
      

  2.   

    用@RETURN_VALUE可以得到过程、函数返回的值,
    如:
    edit1.Text := ADOStoredProc1.Parameters.ParamValues['@RETURN_VALUE'];
      

  3.   

    这个返回值,我认为不是很好用。我喜欢最后用Select 返回就是这样子
    if ..   then 
       Select 0 AS ReturnValue ,'登录成功!' as ReturnMsg
    else
       Select 1 as ReturnValue, '密码错误' as Return Msg直接用 AdoQuery Open 就行了