Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

  1                       Version 4.0 -- 5/1/89                dbretdata
  ______________________________________________________________________

  NAME:  dbretdata

  FUNCTION:
       Return a pointer to a  return  parameter  value  generated  by  a
       stored procedure.

  SYNTAX:
       BYTE *dbretdata(dbproc, retnum)

       DBPROCESS *dbproc;
       int       retnum;








  dbretdata               Version 4.0 -- 5/1/89                        2
  ______________________________________________________________________

  COMMENTS:

       o dbretdata() returns a pointer to a return parameter value  gen-
         erated by a stored procedure.  It is useful in conjunction with
         remote procedure calls and EXECUTE statements  on  stored  pro-
         cedures.
       o 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  pro-
         cedure must also indicate that the parameter should function as


  3                       Version 4.0 -- 5/1/89                dbretdata
  ______________________________________________________________________
         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.

       o When executing a  stored  procedure,  the  server  returns  any
         parameter values immediately after returning all other results.
         Therefore, the application can call dbretdata() only after pro-
         cessing  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  dbret-
         data() or any other routines that process return parameters, it
         must call dbresults() and dbnextrow() as many times  as  neces-
         sary to process all the results.)
       o 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



  dbretdata               Version 4.0 -- 5/1/89                        4
  ______________________________________________________________________
         procedure is invoked with  an  EXECUTE  statement,  the  return
         parameter  values  are available only if the command batch con-
         taining the EXECUTE statement uses local  variables,  not  con-
         stants, for the return parameters.

       o Other  routines  return  additional  information  about  return
         parameter values:
          o dbnumrets() returns the total  number  of  return  parameter
            values.

          o dbretlen() returns the length of a parameter value.
          o dbretname() returns the name of a parameter value.

          o dbrettype() returns the datatype of a parameter value.
       o For an example of this routine, see Example 8 in the DB-Library
         Reference Supplement.




  5                       Version 4.0 -- 5/1/89                dbretdata
  ______________________________________________________________________

  PARAMETERS:
       dbproc -  A pointer to the DBPROCESS structure that provides  the
           connection for a particular front-end/SQL Server process.  It
           contains all the information that DB-Library uses  to  manage
           communications and data between the front end and SQL Server.
       retnum -  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  parame-
           ter  in  a stored procedure is the only return parameter, its
           retnum is 1, not 2.

  RETURNS:



  dbretdata               Version 4.0 -- 5/1/89                        6
  ______________________________________________________________________
       A pointer to the specified return value.  If  retnum  is  out  of
       range,  dbretdata()  returns NULL.  To determine whether the data
       really has a null value (and retnum is not merely out of  range),
       check for a return of 0 from dbretlen().

  SEE ALSO:
       dbnextrow, dbnumrets, dbresults, dbretlen, dbretname,  dbrettype,
       dbrpcinit, dbrpcparam











Typewritten Software • bear@typewritten.org • Edmonds, WA 98026