RPCs are executed as language events (EXEC Procname Params) if any parameter is bound to using SQL_DATA_AT_EXEC.
When an RPC is executed as a language event, no output parameter values are returned.
Output parameters of a stored procedure are also input parameters, although the stored procedure may not use the input value. However, a valid input value must be provided to prevent conversion errors.
For input/output parameters and output parameters, the length/precision (cbColDef) and scale (ibScale) that are set by using SQLBindParameter limit the maximums that the output value can contain.