نمایش نتایج 1 تا 2 از 2

نام تاپیک: آیا در یک storeprocedure می شه دوتا مقدار رو return کرد ؟

  1. #1
    کاربر دائمی آواتار Microsoft.net
    تاریخ عضویت
    آبان 1382
    محل زندگی
    مشهد
    پست
    584

    آیا در یک storeprocedure می شه دوتا مقدار رو return کرد ؟

    من یک استور پروسیجر نوشتم که یک مقدار رو بر می گردونه آیا میشه دوتا مقدار return بشه چجوری ؟ ممنونم

  2. #2
    دوست عزیزم،
    زمانیکه از Return Value استفاده میکنین، فقط یک عدد Integer برگردونده میشه. طبق روال معمول، این عدد صرفا برای این هست که Stored Procedure به Caller اعلام کنه آیا اجرا موفقیت آمیز بود یا خطایی رخ داده. مثلا تصمیم میگیرین عدد 0 به معنی پایان یافتن Procedure بدون خطا، 1 یعنی خطا در فلان قسمت Procedure، عدد 2 به معنی...
    ولی برگردوندن مقدار واقعی، توسط Ouput Parameter انجام میشه. به عنوان مثال در این Procedure من دو مقدار رو به Caller برمیگردونم:

    CREATE PROC Test
    @MyInputParam INT,
    @MyOutput1 VARCHAR(20) OUTPUT,
    @MyOutput2 VARCHAR(20) OUTPUT
    AS
    SET @MyOutput1='Hello'
    SET @MyOutput2='World'
    --Do nothing with @MyInputParam
    GO

    ضمنا پارامتر اولی ازش استفاده نمیشه، فقط برای این وجود داره که بدونین نیازی نیست الزاما همه پارامترها Input یا همگی Output باشن. حالا برای Call کردن:

    DECLARE @Var1 VARCHAR(20)
    DECLARE @Var2 VARCHAR(20)
    EXEC Test 1, @Var1 OUTPUT, @Var2 OUTPUT
    PRINT @Var1 + ' ' + @Var2

    همونطور که ملاحظه میفرمایید باید دو متغیر رو به Procedure ارسال کنیم (با قید اینکه اینها output قراره داشته باشن). هر مقداری در Procedure برای این دو پارامتر قرار بگیره، ما به عنوان Caller، اون مقادیر رو به واسطه متغیرها دریافت میکنیم.
    ضمنا باز اینجا از Return Value هم میتونین استفاده کنین.
    ترکیب داشتن Output Parameter و Return Value این منطق رو داره که مثلا بعد از اجرای Procedure، اگر Return Value برابر با صفر بود، یعنی Procedure با موفقیت به اتمام رسیده، پس مقدار Output Parameter رو میتونین استفاده کنین. ولی اگر 1 بود، یعنی خطایی رخ داده و Output Parameter یا مقداری بدست نیاورده یا مقدارش معتبر نیست.
    موفق باشید،
    امین ثباتی MCSD

تاپیک های مشابه

  1. return 0 or return 1
    نوشته شده توسط amir_civil در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: پنج شنبه 04 مرداد 1386, 15:30 عصر
  2. استفاده از storeprocedure
    نوشته شده توسط mandana2010 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: دوشنبه 03 مهر 1385, 13:45 عصر
  3. مشکل با storeprocedure
    نوشته شده توسط nima_dir در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 22 مرداد 1385, 22:09 عصر
  4. ارسال نام فیلد به عنوان پارامتر به storeProcedure
    نوشته شده توسط reza_Nazem در بخش SQL Server
    پاسخ: 1
    آخرین پست: چهارشنبه 16 فروردین 1385, 23:43 عصر
  5. مشکل در return کردن
    نوشته شده توسط mr_esmaily در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: جمعه 03 مهر 1383, 13:29 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •