***如 何 接 收 S Q L 存 储 过 程 返 回 值***
==============================================================================
CREATE PROCEDURE UPdate_PassWord
(@UserID int,@PassWord nvarchar(255),@NewPassWord nvarchar(255) )
AS
if Exists(SELECT * FROM 帐户表 WHERE 帐户编号=@UserID AND 密码=@PassWord)
begin
Update 帐户表 SET 密码=@NewPassWord Where 帐户编号=@UserID
return 1
end
Else
return 0
GO
================================================================================
上面的存储过程是修改帐户密码用的!
Return 0 表示没有修改
Return 1 表示已经修改
那么如何用 VB 接收由 Return 返回的值呢?
问题点数:20、回复次数:4Top
1 楼lsftest()回复于 2006-05-04 09:10:55 得分 5
参考:
http://www.21ds.net/article/21/26311Top
2 楼bluesky23(乐天_正在开发右半脑。。。^_^)回复于 2006-05-04 09:42:04 得分 5
用
Select 0
或
Select 1
可以返回,不能用ReturnTop
3 楼fuxc(Michael(继续迷茫))回复于 2006-05-05 10:52:17 得分 5
用Command对象来执行,通过Parameters集合来访问返回值Top
4 楼fuxc(Michael(继续迷茫))回复于 2006-05-05 10:58:19 得分 5
如果存储过程只是vb来调用,其实用bluesky23的方法更简单:
改存储过程:
CREATE PROCEDURE UPdate_PassWord
(@UserID int,@PassWord nvarchar(255),@NewPassWord nvarchar(255) )
AS
if Exists(SELECT * FROM 帐户表 WHERE 帐户编号=@UserID AND 密码=@PassWord)
begin
Update 帐户表 SET 密码=@NewPassWord Where 帐户编号=@UserID
select 1 as ischange
end
Else
select 0 as Ischange
GO
=============================================
这样,用Recordset来执行,检查返回的Recordset
Top




