Click here to Skip to main content
12,240,300 members (65,586 online)
Rate this:
 
Please Sign up or sign in to vote.
See more: C# C#4.0
Hello developers,
I have a stored procedure that has output parameter and i was wondering if their is a better way to store the returned values in a variable because i need to assign them to an object. the procedure also takes in two parameters and returns 3 values.

can i have a method that takes in 2 arguments and returns me the values

ALTER PROCEDURE [dbo].[GetPurchaseUnitINDefaultUnit]
-- Add the parameters for the stored procedure here
@quantity as decimal(20,4),
@PurchaseUnitID as int,
@TranslatedQuantity as decimal(20,4) output,
@DefaultUnitID as int output,
@DefaultUnitDesc as varchar(50) output

thanks
Posted 12-Jan-13 1:28am
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

If you use a SELECT statement inside the stored procedure, the result is returned to the calling program. This way the result is handled as a result set, not as output parameters.

For example have a look at http://www.sqlteam.com/article/stored-procedures-returning-data[^]
  Permalink  
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

If you are returning more than one value, then you have three options only:
1) Use out parameters as you are doing.
2) Return values via a SELECT statement.
or
3) Convert your values to VARCHAR and concatenate them together.

I wouldn't use the last one.
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web02 | 2.8.160426.1 | Last Updated 12 Jan 2013
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100