存储过程是采用动态的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 我觉得是这个东西的问题。