PDA

View Full Version : ایا میشه با استفاده از پارا متر خروجی در پروسیجر دو یا چند مقدار را برگشت دادپ؟؟؟؟؟



oliya24
جمعه 05 اسفند 1390, 13:39 عصر
سلام دوستان فک کنم که از عنوان متوجه شده باشید که من دنبال چی هستم من یه جدول دارم که به نام register
که داخلش یه سری فیلد هست به نامهای pid,grade ,stdno ,..من میخوام یه پروسیجر بنویسم که شماره دانشجویی رو بگیره (stdno) و بعد نمره و شماره دانشجو رو بم برگردونه من فقط تونستم تا به حال یه پارامتر خروجی رو برگردونم حالا میخوام بدونم میشه 2 یا چند پارامتر خروجی رو تعریف کرد؟؟؟؟؟اگر میشه لطفا بگید چطور ؟؟؟و چطور اجراش کنم
ممنونم

tiphooo
جمعه 05 اسفند 1390, 15:42 عصر
DECLARE @grade decimal(18,8),@Pid int,@stdno int
EXEC dbo.YourProcedur @stdno,@grade output,@pid output
SELECT @Grade,@Pid
پارامترهای مقصدتون (داخل پروسیجر هم باید از نوع OutPut باشد)
جلوی هر پارامتر هم که در فراخوانی قرار می دهی باید عبارت OutPut یگذاری و محدودیت هم ندارد

oliya24
جمعه 05 اسفند 1390, 16:13 عصر
دوست عزیز من کوئری رو نوشتم و میدونمکه درست هم هست ولی مقدار null رو به من نمایش میده نمیدونم چشه من کد و عکس از جدولم رو میزارم اگر شد یه نگاه بش بنداز
ممنونم
http://www.persianupload.com/311017

یوسف زالی
جمعه 05 اسفند 1390, 17:10 عصر
سلام.
شما در سلکتتون هیچ چیز سلکت نکردید.
باید چیزی شبیه به این کار رو کنید:
select @PID = Field1 from TBL

tiphooo
جمعه 05 اسفند 1390, 17:24 عصر
دوست عزیز به این کدی که نوشتی توجه کن!!!create procedure sp_registerrrw
@stdno varchar(33),
@pid varchar(33)out,
@grade varchar(44)out
as
select @grade ,@pid from register
where stdno =@stdno
شما همون مقادیری که پاس دادی داری برمی گردونی و اصلا از جدول انتخاب نمی کنی
کدت رو به اینصورت تغییر بده
create procedure sp_registerrrw
@stdno varchar(33),
@pid varchar(33)out,
@grade varchar(44)out
as
select @grade=grade ,@pid=pid from register
where stdno =@stdno
مشکلت حل می شه