Determine the length of a return parameter value generated by a stored procedure.
DBINT dbretlen(dbproc, retnum) DBPROCESS *dbproc; int retnum;
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 the return parameter value of interest. The first return value is 1. Values are returned in the same order as the parameters were originally specified in the stored procedure’s create procedure statement. (Note that this is not necessarily the same order as specified in the remote procedure call.) When specifying retnum, non-return parameters do not count. For example, if the second parameter in a stored procedure is the only return parameter, its retnum is 1, not 2.
The length of the specified return parameter value. If retnum is out of range, dbretlen returns -1. If the return value is null, dbretlen returns 0.
dbretlen returns the length of a particular return parameter value generated by a stored procedure. It is useful in conjunction with remote procedure calls and execute statements on stored procedures.
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 dbretlen 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 dbretlen 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.
Other routines return additional information about return parameter values:
dbnumrets returns the total number of return parameter values.
dbretdata returns a pointer to a parameter value.
dbretname returns the name of a parameter value.
dbrettype returns the datatype of a parameter value.
dbconvert converts the value to another datatype, if necessary.
For an example of this routine, see the dbretdata reference page.
dbnextrow, dbnumrets, dbresults, dbretdata, dbretname, dbrettype, dbrpcinit, dbrpcparam