我已经在 SQL Server 中设置了一个运行良好的存储过程。我现在可以从 VBA 调用它,但想返回一个值以了解是否有任何错误等。我的 SP 中的最后一个参数设置为 OUTPUT:
@DataSetID int = 0,
@Destination char(1)='-',
@errStatusOK bit OUTPUT
我调用 SP 的 VBA 如下,但现在无法使用,添加新参数后,我不确定哪里出错了,我不断收到3708 - Parameter object is improperly defined. Inconsistent or incomplete information was provided.
:
Set cnn = New adodb.Connection
cnn.ConnectionString =
"DRIVER=SQL Server;SERVER=SERVER\SERVER;DATABASE=a_db;Trusted_Connection=Yes"
cnn.Open cnn.ConnectionString
Set cmd = New adodb.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "stprMoveDataSet"
Set param = cmd.CreateParameter
("@DataSetID", adInteger, adParamInput, , stDataSet)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@Destination", adChar, adParamInput, 1, stDestination)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@errStatusOK", adBit, adParamReturnValue)
cmd.Parameters.Append param
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd
如何让 vba 使用 OUTPUT 参数并使 vba 的返回值“可读”。
编辑 - 我已将问题更改为更具体地关于返回值,而不仅仅是关于使用 OUTPUT 参数。