Determine the number of return parameter values generated by a stored procedure.
int dbnumrets(dbproc) DBPROCESS *dbproc;
A pointer to the DBPROCESS structure that provides the connection for a particular front-end/server process. It contains all the information that DB-Library uses to manage communications and data between the front end and server.
The number of return parameter values associated with the most recently-executed stored procedure.
dbnumrets provides the number of return parameter values returned by the most recent execute statement or remote procedure call on a stored procedure. If the number returned by dbnumrets is less than or equal to 0, then no return parameters are available.
Transact-SQL stored procedures can return values for specified “return parameters.” Changes made to the value of a return parameter inside the stored procedure are then available to the program that called the procedure. This is analogous to the “pass by reference” facility available in some programming languages.
For a parameter to function as a return parameter, it must be declared as such within the stored procedure. The execute statement or remote procedure call that calls the stored procedure must also indicate that the parameter should function as a return parameter. In the case of a remote procedure call, it is the dbrpcparam routine that specifies whether a parameter is a return parameter.
When executing a stored procedure, the server returns any parameter values immediately after returning all other results. Therefore, the application can call dbnumrets only after processing the stored procedure’s results by calling dbresults, as well as dbnextrow if appropriate. (Note that a stored procedure can generate several sets of results—one for each select it contains. Before the application can call dbnumrets or any other routines that process return parameters, it must call dbresults and dbnextrow as many times as necessary to process all the results.
If the stored procedure is invoked with a remote procedure call, the return parameter values are automatically available to the application. If, on the other hand, the stored procedure is invoked with an execute statement, the return parameter values are available only if the command batch containing the execute statement uses local variables, not constants, for the return parameters. For more details on return parameters from stored procedures, see the Adaptive Server Enterprise Reference Manual.
Other routines are used to retrieve return parameter values:
dbretdata returns a pointer to a parameter value.
dbretlen returns the length of a parameter value.
dbretname returns the name of a parameter value.
dbrettype returns the datatype of a parameter value.
dbconvert can be called to convert the value, if necessary.
For an example of how these routines can be used together with dbnumrets, see the reference page for dbretdata.
dbnextrow, dbresults, dbretdata, dbretlen, dbretname, dbrettype, dbrpcinit, dbrpcparam