Skip to main content

الجزء ال19: الأجراء المخزن مع ارجاع قيمة Stored Procedure with Return Value

الجزء ال19: الأجراء المخزن مع ارجاع قيمة

 Stored Procedure with Return Value

تعلمنا في الجزء ال18 كيفية استرجاع قيمة وتخزينها في متغير عن طريق الOUTPUT , في هذا الجزء سنتعلم كيفية ارجاع قيمة بطريقة الReturn وسنعرف ماالفرق بينهما:
الفرق بين الأثنين:
Output parameter
Return status value
نوع القيم المسترجعة قد تكون اي نوع من انواع البيانات
نوع القيمة المسترجعة يجب ان تكون عدد integer
عدة قيم مسترجعة
قيمة مسترجعة واحدة فقط
تستخدم لأسترجاع بيانات مثل : اسم الموظف , عدد الموظفين , قسم الموظفين وغيرها....
تستخدم في العمليات لمعرفة ما اذا كانت قيمة نجاح او خطأ

مثال: اريد معرفة عدد الموظفين؟
يمكن ذلك عن طريق استخدام الOUTPUT parameter وكذلك عن طريق الReturn status value :
الحل الأول: عن طريق الOUTPUT parameter :
انشاء الأجراء اللازم:
USE [test]
GO
CREATE PROC spGetEmpCount
@totalEmp int OUTPUT
AS
BEGIN
 SELECT @totalEmp = COUNT(ID) FROM tblEmployees
END



تنفيذ الأجراء:
DECLARE @totalEmp INT
EXEC spGetEmpCount @totalEmp OUTPUT

PRINT @totalEmp


الحل الثاني بأستخدام الReturn:
انشاء الأجراء اللازم:
CREATE PROC spGetEmpCount2
AS
BEGIN
 RETURN (SELECT COUNT(ID) FROM tblEmployees)
END
تنفيذ الأجراء:
DECLARE @TotalEmp INT
EXEC @TotalEmp = spGetEmpCount2
PRINT @TotalEmp


المثال التالي سيوضح الفرق بين الحل الأول والحل الثاني اي بين الOUTPUT parameters و بين الReturn status value
مثال: اريد استرجاع اسم الموظف ونوع جنسه الذي رقمه التعريفي يساوي 5؟
الحل الأول: عن طريق الOUTPUT parameter :
انشاء جملة الأستعلام لأسترجاع اسم الموظف مع نوع جنسه:



أنشاء الأجراء اللازم:
CREATE PROC spGetEmpByID
@ID int,
@Name NVARCHAR(20) OUTPUT,
@Gender NVARCHAR(20) OUTPUT
AS
BEGIN
SELECT @Name = E.NAME,@Gender=G.GenderName
FROM tblEmployees E
JOIN tblGender G
ON E.GenderID = G.ID
WHERE E.ID = @ID
END


تنفيذ الأجراء:
DECLARE @EmpName NVARCHAR(20),@EmpGender NVARCHAR(20)
EXEC spGetEmpByID 5, @EmpName OUTPUT, @EmpGender OUTPUT
PRINT 'Employee Name = ' + @EmpName +' Employee Gender = '+@EmpGender


الحل الثاني بأستخدام الReturn:
انشاء الأجراء اللازم:


لاحظ عند عمل الأجراء وتنفيذه يظهر خطأ عدم قبول اكثر من تعبير اي يتوجب علينا حذف الربط وهذا اول مقارنة مع الOUTPUT parameters
CREATE PROC spGetEmpByID2
@ID int
AS
BEGIN
RETURN
(SELECT NAME
FROM tblEmployees
WHERE ID = @ID)
END

تنفيذ الأجراء:
لاحظ الخطأ: القيمة المسترجعة يجب ان تكون من نوع NVARCHAR ولكن في الReturn status value يجب ان تكون القيمة المسترجعة هي Integer فظهر خطأ تحويل الNVARCHAR  الى عدد
فبهذا تمت المقارنة بين الأثنين.

Comments

Popular posts from this blog

How to fix the disk is write protected

in this video tutorial, I'll show you how to remove/solve/fix the disk is write protected from USB flash drive. To download the necessary 2 files: Download >  SAFAA_ALHAYALI.IMG  - 1.18 MB Download >  Win32DiskImager-0.9.5-install.exe - 11.7 MB write protection,remove write protection,write protected,How to fix the disk is write protected,how to solve the disk is write protected,how to remove the disk is write protected,USB write protected,fix USB write protected,fix HDD write protected,how to,windows,USB flash drive ERROR,fix USB flash drive write protected,USB flash drive write protected

How To Play .srt Subtitles File in Windows Media Player

How To Play .srt Subtitles File in Windows Media Player links: https://sourceforge.net/projects/wmpsub/ wmp,.srt Subtitles File in Windows Media Player,How To Play .srt Subtitles File in Windows Media Player,How To,Safaa Al-Hayali,saf3al2a,srt subtitle in WMP,Windows,Windows Media Player,media,.ass,local subtitles

How to Download and Play PlayStation 1 / PSX Games on Android Phones -Tablets

How to Download and Play PlayStation 1 / PSX Games on Android Phones -Tablets Get the chance to get and play PS1 (Playstation 1/PSX) games on your android the process is pretty simple just follow the steps and you'll be up and running in no time. Download Links: PS1 / PSX Emulator on android PS1 iso games Archiver for android Playstation,PSX,How to,Safaa Al-Hayali,Android,Android games,PS1 on android,android emulator,gaming ps1 on android,android tablet,saf3al2a,download,play,ps1,play station 1,emulator,best emulator for android