PDA

View Full Version : ارسال یک مقدار از یک sp به sp دیگر



طبیب دل
یک شنبه 12 خرداد 1392, 16:27 عصر
با سلام به دوستان
چطوری میتونم یک مقدار از یک sp به sp دیگه ارسال کنم؟
و آیا اصلا این کار درست هست یا نیست؟
با تشکر

tooraj_azizi_1035
یک شنبه 12 خرداد 1392, 19:38 عصر
درست بودن اون به بستگی به نوع نیازتون داره :


Let us first create one Stored Procedure which gives us square of the passed parameter.

-- First Stored Procedure
CREATE PROCEDURE SquareSP
@MyFirstParam INT
AS
DECLARE @MyFirstParamSquare INT
SELECT @MyFirstParamSquare = @MyFirstParam*@MyFirstParam
-- Additional Code
RETURN (@MyFirstParamSquare)
GO

Now let us create second Stored Procedure which gives us area of the circle.

-- Second Stored Procedure
CREATE PROCEDURE FindArea
@SquaredParam INT
AS
DECLARE @AreaofCircle FLOAT
SELECT @AreaofCircle = @SquaredParam * PI()
RETURN (@AreaofCircle)
GO

You can clearly see that we need to pass the result of the first stored procedure (SquareSP) to second stored procedure (FindArea). We can do that by using following method:

-- Pass One Stored Procedure's Result as Another Stored Procedure's Parameter
DECLARE @ParamtoPass INT, @CircleArea FLOAT
-- First SP
EXEC @ParamtoPass = SquareSP 5
-- Second SP
EXEC @CircleArea = FindArea @ParamtoPass
SELECT @CircleArea FinalArea
GO

You can see that it is extremely simple to pass the result of the first stored procedure to second procedure.

You can clean up the code by running the following code.

-- Clean up
DROP PROCEDURE SquareSP
DROP PROCEDURE FindArea
GO

benyaminrahimi
دوشنبه 13 خرداد 1392, 12:40 عصر
در پروسیجر داخلی پارمتری که مخواهید برگردانید نوع out باشه مثلا @date out < بعد با یک declare و EXEC مشکل حل میشه



EXEC sp_pub_gen_page
@dept_id,
@cuser,
@taraf_id,
@work_id,
@tarikh,
NULL,
NULL,
NULL,
1,
1,
@mozo,
@mozo,
NULL,
NULL,
NULL,
@page_gen OUT


IF @page_gen > 0
BEGIN
INSERT INTO tbl_pub_page_importer
(
page_id,
ref_id,
typ
)
VALUES
(
@page_gen,
@ids,
'fax'
)

مهدی هادیان2
سه شنبه 14 خرداد 1392, 08:45 صبح
بسم الله الرحمن الرحیم

با سلام به دوستان
چطوری میتونم یک مقدار از یک sp به sp دیگه ارسال کنم؟
و آیا اصلا این کار درست هست یا نیست؟
با تشکر
با سلام
بنده در این مواقع از Function استفاده میکنم و در SP اون رو صدا میزنم.
موفق باشید.

benyaminrahimi
سه شنبه 14 خرداد 1392, 09:04 صبح
بعضی مواقع ما چن تا خروجی لازم داریم .. رفبق

مهدی هادیان2
چهارشنبه 15 خرداد 1392, 13:50 عصر
بسم الله الرحمن الرحیم

بعضی مواقع ما چن تا خروجی لازم داریم .. رفبق
با سلام
ما هم چند نوع تابع داریم.
موفق باشید.

benyaminrahimi
پنج شنبه 16 خرداد 1392, 17:14 عصر
تعریف تابع یک خروجی است حالا چه متغییر چه تیبل ... پس با استدلال شما پارا متر خروجی برای stored procedure اشتباه است و با فانکشن حل می شود ... پس مایکرو سافت اشتباه بزرگی کرده لطفا ریپورت کنید از این جهالت رهایی یابند :)

fakhravari
پنج شنبه 16 خرداد 1392, 21:46 عصر
یه مثال دیگه میتونید بزنید