最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
同时具有返回值、输入参数、输出参数的存储过程
时间:2022-07-02 23:07:33 编辑:袖梨 来源:一聚教程网
同时具有返回值、输入参数、输出参数的存储进程
前面说过,在调用存储进程时,声明参数的顺序要与存储进程中定义的顺序相同。还有一点要特别注意:如果存储进程同时具有返回值以及输入、输出参数,返回值要最先声明。
为了演示这种情况下的调用方法,我们改善一下上面的例子。还是取得ID为1的用户的用户名,但是有可能该用户不具有(该用户已删除,而USERID是自增长的字段)。存储进程根据用户具有与否,返回不同的值。此时,存储进程和ASP代码如下:
/*SP5*/
CREATE PROCEDURE DBO.GETUSERNAME
--为了加深对"顺序"的印象,将以下两参数的定义顺序颠倒一下
@USERNAME VARCHAR(40) OUTPUT,
@USERID INT
AS
SET NOCOUNT ON
BEGIN
IF @USERID IS NULL RETURN
SELECT @USERNAME=USERNAME
FROM DBO.[USERINFO]
WHERE
IF @@ROWCOUNT>0
RETURN 1
ELSE
RETURN 0
RETURN
END
GO
'**调用同时具有返回值、输入参数、输出参数的存储进程**
DIM MYCOMM,USERID,USERNAME
USERID = 1
SET MYCOMM = SERVER.CREATEOBJECT("ADODB.COMMAND")
WITH MYCOMM
.ACTIVECONNECTION = MYCONSTR 'MYCONSTR是连接字串
.COMMANDTEXT = "GETUSERNAME" '指定存储进程名
.COMMANDTYPE = 4 '表明这是一个存储进程
.PREPARED = TRUE '要求将SQL命令先行编译
'返回值要最先被声明
.PARAMETERS.APPEND .CREATEPARAMETER("RETURN",2,4)
'以下两参数的声明顺序也做相应颠倒
.PARAMETERS.APPEND .CREATEPARAMETER("@USERNAME",200,2,40)
.PARAMETERS.APPEND .CREATEPARAMETER("@USERID",3,1,4,USERID)
.EXECUTE
END WITH
IF MYCOMM(0) = 1 THEN
USERNAME = MYCOMM(1)
ELSE
USERNAME = "该用户不具有"
END IF
SET MYCOMM = NOTHING
相关文章
- 武神主宰手游公测时间揭晓 武神主宰手游正式开服日期公布 06-06
- 白银之城内测时间公布 白银之城内测开启日期及参与方式详解 06-06
- icity我的日记如何开启专注模式 06-06
- 今花生app如何搜索商品 06-06
- 咔皮记账如何设置预算 06-06
- 竹马法考如何设置题库 06-06