Click here to Skip to main content
11,704,001 members (67,424 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: 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 0: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
0 Maciej Los 530
1 OriginalGriff 510
2 Sergey Alexandrovich Kryukov 421
3 Andy Lanng 294
4 F-ES Sitecore 220
0 OriginalGriff 8,744
1 Sergey Alexandrovich Kryukov 7,747
2 CPallini 5,107
3 Maciej Los 4,716
4 Mika Wendelius 3,606


Advertise | Privacy | Mobile
Web03 | 2.8.150819.1 | Last Updated 12 Jan 2013
Copyright © CodeProject, 1999-2015
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