• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
wolf416 2001年09月11日
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;

}

这是什么原因?
但当我用只返回一个参数的存储过程时,则可以通过,是不是不支持两个返回参数?



...全文
64 点赞 收藏 3
写回复
3 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ Builder
创建于2007-08-02

2557

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告