السلام عليكم ورحمة الله وبركاته ...
كثير من الأحيان نستخدم الـ Stored Procedures لقراءة البيانات من قواعد البيانات لدينا ... و طبعاً أفضل تطبيق ان تقرئها عن طريق Stored Procedures و ليس عن طريق جملة SELECT من داخل البرنامج ... و ذلك لعدة اعتبارات من أهمها أمن المعلومات ...
عموماً ليس هذا موضوعنا...
كما قلت سوف نستخدم Stored Procedures في قراءة البيانات من قبل البرنامج، و لنفرض انه يوجد لدينا Stored Procedures التالية و التي تعطينا جميع بيانات المستخدين في جدول Users ...
كود PHP:
CREATE PROCEDURE GetUserData
AS
BEGIN
SELECT [ID], [Name], [Phone], [Email]
FROM [Users]
END
GO
عندما ننفذ هذه Stored Procedures عن طريق الأمر:
كود PHP:
EXEC GetUserData
سوف يخرج لنا في كل مرة الرسالة مثلاً (طبعاً الرقم سوف يتغير على حسب البيانات الموجودة):
كود PHP:
(11 row(s) affected)
في كل تنفيذ لهذه Stored Procedures سوف تخرج لنا رسائل شبيهة لهذه الرسالة أعلاه ... و كأفضل تطبيق هو ان نستخدم الجملة:
كود PHP:
SET NOCOUNT ON
Go
هذه الجملة لن تظهر لنا الرسالة التي تخبرنا بعدد الاسطر المسترجعة ... و هذا من شأنه ان يقوم بتحسين الآداء و تقليص كمية البيانات التي ترسل عبر الشبكة ...
و سيكون شكل الـ Stored Procedures بعد التعديل كالتالي:
كود PHP:
CREATE PROCEDURE GetUserData
AS
BEGIN
SET NOCOUNT ON;
SELECT [ID], [Name], [Phone], [Email]
FROM [Users]
END
GO