FIX: RETURN Statement After an RPC Causes Extra Result Set
  
PSS ID Number: Q100817
Article last modified on 10-31-1994
 
4.20
 
WINDOWS
 

----------------------------------------------------------------------
The information in this article applies to:
 
  - Microsoft SQL Server version 4.2
----------------------------------------------------------------------
 
BUG# NT: 324 (4.2)
 
SYMPTOMS
========
 
An extra result set is returned from SQL Server when a stored
procedure containing a remote procedure call followed by a RETURN
statement is executed. This does not happen if there is no RETURN
statement following the EXECUTE statement or if a local procedure is
executed instead of a remote one.
 
For example, executing the following stored procedure replicates the
above problem:
 
   create proc rpcproc as
   execute <remote machine>...sp_who
   return
   go
   execute rpcproc
   go
 
WORKAROUND
==========
 
Modify the stored procedure, if possible, to avoid the explicit return
statement following the call to execute the remote procedure. Another
workaround is to make sure your front-end application is handling the
extra result set properly. One recommened way of doing this is to
execute the call to dbresults in a WHILE loop until it returns
NO_MORE_RESULTS.
 
STATUS
======
 
Microsoft has confirmed this to be a problem in SQL Server version
4.2 for Windows NT. This problem was corrected in SQL Server version
4.21. For more information, contact your primary support provider.
 
Additional reference words: 4.20 RPC dbresults DB-Library Windows NT
KBCategory: kbprg
KBSubcategory: SSrvWinNT
 
=============================================================================
 
Copyright Microsoft Corporation 1994.
