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 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 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

Virtual Box : How to Increase Disk Size - Windows

How to increase disk size or disk storage in oracle virtual box the command you have to use: vboxmanage.exe modifymedium "[YourPathToVdiFileOfYourVirtualMachine]" --resize [NUMBER] virtual,box,vbox,oracle,partition,size,disk,increase,resize,windows,10,microsoft,vdi,vboxmanage,configuration,Safaa AL-Hayali,saf3al2a,Oracle,VirtualBox,How to,windows 10