SQLServer中返回两个参数的存储过程,在BCB中好象无法使用,不知何故?请看详情
1.建立登录存储过程
说明:
输入:用户名和密码
输出:用户的权限和些用户是否已经登录过
所操作的表为:LoginUser
create procedure LoginUserCheck @UserName varchar(20),@PassWord varchar(20),
@Privilege varchar(20) output,@IsLogin bit output
as
select @Privilege=Privilege ,@IsLogin=IsLogin
from loginuser
where UserName=@UserName and PassWord=@PassWord
这步没有问题,我已证实
2.在BCB中,我在两个编辑框中输入用户名和密码,我想得到用户的权限和这个用户是否已经登录过
void __fastcall TForm1::UserLoginOKClick(TObject *Sender)
{
m_strUserName=EditUserLoginName->Text;
m_strPassword=EditUserLoginPW->Text;
StoredProcLogin->Close();
StoredProcLogin->ParamByName("@UserName")->AsString=m_strUserName;
StoredProcLogin->ParamByName("@PassWord")->AsString=m_strPassword;
if(StoredProcLogin->Prepared==false)
StoredProcLogin->Prepare();
StoredProcLogin->ExecProc();//在此出错,提示:"NULL Program pointer encountered"
LabelPrivilege->Caption=StoredProcLogin->ParamByName("@Privilege")->AsString;
LabelIsLogin->Caption=StoredProcLogin->ParamByName("Result")->AsString;
}
这是什么原因?
但当我用只返回一个参数的存储过程时,则可以通过,是不是不支持两个返回参数?