Получение выходного параметра хранимой процедуры через ADO

Я застрял с этим в течение более 48 часов. Я'Я пытаюсь получить значение выходного параметра, используя объекты ADO. вот мой код VBA.

Function ExecuteCommand(cSp As String, aParameters As Variant) As Integer

Dim lnReturn As Integer
Dim loCommand As ADODB.Command
Dim prm As ADODB.Parameter
Dim rds As ADODB.Recordset

Set loCommand = New ADODB.Command

loCommand.CommandText = cSp
loCommand.CommandType = adCmdStoredProc
Set loCommand.ActiveConnection = goConnection
loCommand.NamedParameters = True

Dim iCount As Integer

For iCount = LBound(aParameters) To UBound(aParameters)
    If aParameters(iCount, 0)  "" Then
        If aParameters(iCount, 1) = adNumeric Then
            Set prm = loCommand.CreateParameter(aParameters(iCount, 0), aParameters(iCount, 1), adParamInput)
            prm.Precision = 18
            prm.NumericScale = 0
            prm.Value = aParameters(iCount, 3)
        Else
            Set prm = loCommand.CreateParameter(aParameters(iCount, 0), aParameters(iCount, 1), adParamInput, , aParameters(iCount, 3))
        End If
        loCommand.Parameters.Append prm
    End If
Next

Set prm = loCommand.CreateParameter("@returnval", adInteger, adParamOutput, , lnReturn)
loCommand.Parameters.Append prm

Set rds = loCommand.Execute
' Check the value of lnReturn and it's zero here.
lnReturn = loCommand.Parameters("@returnval").Value


ExecuteCommand = lnReturn

End Function

Моя хранимая процедура выглядит следующим образом ...

USE [table_name]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spname]
@para1 int,
@para2 int,
@para3 int,
@returnval int Output
AS
BEGIN

SET NOCOUNT ON;

SELECT * FROM type_table WHERE type1=@para1 and type2=@para2 and type3=@para3
SET @returnval = @@ROWCOUNT
RETURN @returnval
END

Это мои выводы

lnReturn = 0 always
rds.EOF = False
rds.RecordCount = -1

Мой вопрос яя не получаю правильное число строк, на которое влияют, которое составляет 1. ЯЯ не уверен, что не так с кодом, и кто-то может мне помочь?

Ответы на вопрос(3)

Ваш ответ на вопрос