存储过程是采用动态的sql语句。 ...
EXECUTE sp_executesql @StrSql,N'@UserID uniqueidentifier OUTPUT,@SysTime VARCHAR(20) OUTPUT,@EmpCode VARCHAR(5) , @PassWord VARCHAR(8)',@UserID OUTPUT ,@SysTime OUTPUT,@EmpCode,@PassWord
IF ....
BEGIN
RETURN 0
END
...
With cmd
Set .ActiveConnection = g_Conn
.CommandType = adCmdStoredProc '设置Command类型为“存储过程”
.CommandText = "P_Attend" '存储过程的名称
'返回型参数
.Parameters.Append .CreateParameter("@RetVal", adInteger, adParamReturnValue)
'传入参数
.Parameters.Append .CreateParameter("@EmpCode", adChar, adParamInput, 5, strEmpCode)
.Parameters.Append .CreateParameter("@PassWord", adChar, adParamInput, 5, strPassWord) '传入输出型的参数
.Parameters.Append .CreateParameter("@UserID", adGUID, adParamOutput)
.Parameters.Append .CreateParameter("@SysTime", adGUID, adParamOutput) .Execute
'得到操作结果,登陆成功返回用户ID
Attend= .Parameters("@RetVal").Value
If Attend= 0 Then
UserID = .Parameters("@UserID").Value
SysTime = .Parameters("@SysTime").Value
End If
End With请问为什么UserID,SysTime 为什么会是空值呢?
而存储过程执行之后会返回一个GUID和系统时间。
我用了下面两种方法都不能正确取返回值。
方法一:set rs=cmd.Execute 方法二:set rs=g_conn.execute ("存储过程,,,") 这两种方式都不正确,rs.state=0
EXECUTE sp_executesql 我觉得是这个东西的问题。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货