الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن استخدامStored Proceduresمع فيجوال دوت نت

مغلق
بدأه Ahmed Wahb في 24 أبريل 2006 · 3 رد · 1,069 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

اخواني الاعزاء

ما هو ال Stored Procedures وكيف يمكن استخدامة مع فيجوال بيسك دوت نت ؟

كل ما اعرفة انة اجراء مخزن بمعني انة بيقوم بتنفيذ العديد من المهام علي قاعدة البيانات

ولكن اريد ان يقوم احد من الاخوة الكرام بشرحه وكيفية استخدامة مع الفيجوال بيسك دوت نت

يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل

سبحان الله وبحمده ... سبحان الله العظيم

#2

بسم الله الرحمن الرحيم

شرح ال Stored procedures (الدوال المخزنة):-

عند التعامل مع الstored procedures لأول مرة نستخدم create procedure أو create proc لإنشاء الدوال المخزنة

اولا توضيح بعض الملاحظات للتعامل مع الدول المخزنة:

1- المنغيرات التى تم تعريفها اثناء انشاء الدالة لابد و ان توجد اثناء التنفيذ للدالة

2- لا يصح انشاء و حذف او اعادة انشاء عنصر بنفس الاسم او اعادة انشاء لنفس العنصر فى نفس الدالة

3- يمكن ان تحتوى الدالة على 1024 متغير

4- يمكن ان تنشئ الدالة جداول مؤقتة اثنء التنفيذ و لكن هذه الجداول تختفى بعد تمام تنفيذ الدالة

5- الدوال المخزنة لا يمكن ان تحتوى على هذه الجمل

"Create procedure, create rule, create default, create trigger, and create view."

6-يمكن انشاء دوال متداخلة حتى مستوى 32 مستوى(nested procedures).

ملحوظة هامة :-

عند انشاء دالة جديدة يفضل اختبار جمل ال SQL التى توجد فى الدالة قبل وضعها داخل الدالة لتجنب ظهور نتائج غير متوقعة

إنشاء ال stored procedures

سنبدا بانشاء دالة بسيطة لا تطلب نتغيرات عند تنفيذها

create proc showAllItems
 as
  begin
 select * from bills
 end
 go

عند تنفيذ هذا الأمر يظهر هذا السطر

Command(s) completed successfully

.

و هذا السطر يفيد بان الدالة تم انشاءها و ستجد ان الدالة اضيفى الى الفرع stored procedures كما هو موضح بالصورة

24_04_06_10_31_20_11458998801.JPG

حاول تنفيذ هذا الامر مرة اخرى ستظهر لك الرسالة الاتية

Msg 2714, Level 16, State 5, Procedure show, Line 4
There is already an object named 'show' in the database.

و الذى يخبرنا بانه يوجد عنضر بهذا الاسم فى قاعد البيانات (عشان احنا انشاناه من شوية)

لتنفيذ هذه الدالة و رؤية النتائج نستخدم Exec statement

Exec Showو الذى سوف يظهر جميع السجلات فى الجدول كما هو موضح بالشكل الاتى

24_04_06_10_34_46_1145900086_.JPG

لو لاحظت فى MASTER database ستجد العديد من الدوال المخزنة التى تمكننا من التعامل مع قواعد البيانات الموجودة على السيرفر والتعامل مع العناصر الموجودة بها فعلى سبيل المثال توجد دالة sp_dependes

قم بكتابة الامر التالى

sp_depends show

ولا حظ النتائج التى تظهر فى الشكل

24_04_06_10_36_38_11459001983.JPG

هذه الدالة تستخدن لعرض العناصر التى تعتمد عليها الدالة حيث فى هذا المثال تعتمد الدالة التى قمنابانشائها على 14 عمود فى الجدول مع اظهار الخصائص الخاصة بكل عمود

Creating group of Procedures

create proc group_sp;1
as select * from orders
go
create proc group_sp;2
as select * from products 
go
create proc group_sp;3
as select * from employees
go

عند تنفيد الامر السابق يقوم البرنامج بانشاء دالة واحدة بنفس الاسم ولكن بثلاث وظائف مختلفة حيث تختلف الوظيفة باختلاف الرقم 1 او 2 او 3

فمثلا عند تنفيذ الامر

exec group_sp;2 يقوم البرنامج بعرض جميع العناصر فى جدول المنتجات
exec group_sp;1و بالمثل عند كتابة الامر

يقوم البرنامج بعرض جميع العناصر فى جدول ال orders

- عندما نريد ان نحذف الدوال ما علينا الا ان نحذف الدالة grpoup_sp وذلك باستخدا الامر drop procedure

Drop Procedure group_sp

--

لاحظ انه لا يمكننا حذف دالة من الثلاث دوال دون الاخرى

فى المثال السابق قمنا بانشاء دوال بسيطة تمكننا من استرجاع جميع العناصر فى الجدول المبين

سنتناول مثال اخر بحيث نستعمل فيه المتغيرات و ليكن اسم الجدول هو العنصر المتغير

Using parameters with Stored Procedures

البرامتر يمكننا من انشاء دالة تظهر نتائج لسجلات مختلفة (يعنى استعمل الدالة لاستدعاء معلومات من اماكن مختلفة ) يعنى زى ال variable

مثال :-

create proc Average
@no1 smallint,
@no2 smallint
as
Select (@no1+@no2)/2

فى هذه الدالة تم تعريف متغيرين No1 , @No2@ عند تنفيذ هذه الدالة ندخل قيمين و توجد الدالة المتوسط لهم مثل

exec Average 22,51 فيكون الناتج36

لاجظ عند ادخال القيم للدالة ان تكون من نفس نوع المتغير

مثال اخر لل stored procedure

create proc ubdateelement
@id char(4),
@name nvarchar(30),
@price money 
as 
update goods set goods.[إسم الصنف]=@name , goods.[سعر الوحدة]=@price
where 
goods.[كود الصنف]= @id
Go

هذه الدالة تقوم بتغيير اسم الوحدة وسعر الوحدة اذا كان طود الصنف=@id

عند تنفيذ الدالة

exec updateelement 1,[hdd],320

يقوم البرنامج بتحديث قاعدة البيانات و تغيير اسم الصنف الى hdd و سعر الوحدة 320 اذا كان اذا كان كود الصنف 1

تم تعديل هذه المشاركة بواسطة m_3ryan في 24 أبريل 2006 في 21:41

#3

الاخ العزيز Ahmed Wahb لقد قمت بتوضيح نبذه مختصرة عن الدوال المخزنة و سوف اقوم لاحقا بتوضيح كيفية العمل بها فى بيئة vb.net 2005 فى خلال الايام القادمة

لا تنسانى بدعواتك الخالصة

عن أبي موسى رَضِيَ اللَّهُ عَنهُ قال، قال رَسُول اللَّهِ صَلَّى اللَّهُ عَلَيهِ وَسَلَّم: الاستئذان ثلاث، فإن أذن لك وإلا فارجع متفق عَلَيهِ.

#4

اخي m_3ryan

بارك الله فيك علي هذاالشرح الجميل

وفي انتظار كيفية الاستخدام علي فيجوال بيسك دوت نت 2003

يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل

سبحان الله وبحمده ... سبحان الله العظيم

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…