إنشاء الإجراءات المخزنة في قواعد
بيانات Access:
على عكس ما يظنه الكثيرون، يمكن استخدام الإجراءات
المخزنة مع قواعد بيانات آكسيس.. لكن المشكلة أنك لن تجد طريقة لإنشائها في آكسيس
نفسه (في الإصدارات السابقة لأكسيس 2010)، كما أنك لا تستطيع إنشائها في متصفح
الخوادم Server Explorer في دوت نت، رغم أنك ستجد عنصرا
اسمه Stored Procedures ضمن عناصر قاعدة بيانات الكتب Books.mdb!
فما
هو حل هذا اللغز العجيب يا ترى؟
الحل
هو تنفيذ الجملة التي تنشئ الإجراء المخزن من خلال كود فيجيوال بيزيك في أحد
برامجك لمرة واحدة، وبهذا يتم إنشاء الإجراء المخزن في قاعدة بيانات آكسيس، ويظهر
في متصفح الخوادم تحت العنصر Stored
Procedures.. طبعا لا نستطيع فعل هذا
الآن، لهذا سنؤجله إلى فصل لاحق.. لكن علينا هنا أن نوضح بعض الاختلافات الجوهرية
بين الإجراء المخزن الخاص بآكسيس والإجراء المخزن الخاص بسيكويل سيرفر:
1- يستخدم
آكسيس التعبير CREATE PROC
بدلا من التعبير CREATE PROCEDURE.
2- الإجراء
المخزن في آكسيس يتكون من جملة SQL واحدة فقط، لأن آكسيس لا يقبل تنفيذ أكثر من جملة مفصولة بالعلامة
;.
3- لا
يمكن تعريف متغيرات في الإجراء المخزن في آكسيس ولا يمكن استخدام جمل الشرط..
السبب ببساطة أن آكسيس لا يتعامل مع T-SQL.
4- لا
توضع العلامة @ قبل أسماء المعاملات الخاصة بالإجراء المخزن في آكسيس.. وطبعا
أنواع هذه المعاملات هي الأنواع الخاصة بآكسيس.
5- لا
ينتهي الإجراء المخزن في آكسيس بالكلمة RETURN.
باختصار:
الإجراء المخزن في آكسيس، هو مجرد استعلام SQL مخزن!
هكذا
مثلا سيكون الإجراء المخزن الذي يحذف من جدول المؤلفين، المؤلف الذي ترسل اسمه
إليه:
CREATE PROC DeleteAuthor(
AuthorName
VARCHAR(20) )
AS
DELETE FROM Authors
WHERE
(Authors.Author = AuthorName);
ولكي
تضيف هذا الإجراء إلى قاعدة بيانات الكتب، افتح المشروع AccessStoredProcedure، وشغل البرنامج، واضغط الزر "DeleteAuthor".. كما يمكنك إنشاء إجراء مخزن للحصول على كتب أحد المؤلفين،
بضغط الزر "GetAuhorBooks".
لاحظ
أن هذا البرنامج يفترض وجود الملف Books.mdb على المسار C:\.. وسنفهم الكود الذي يستخدمه هذا البرنامج بالتفصيل لاحقا.
بعد
أن تنفذ هذا البرنامج، أضف اتصالا بقاعدة بيانات الكتب الموجودة على المسار C:\ في متصفح الخوادم، وأسدل عناصرها.. ستجد أن الإجراءين DeleteAuthor و GetAuhorBooks
قد ظهرا تحت العنصر Stored Procedures.. لكن للأسف، لا يمنحك متصفح الخوادم أية طريقة لعرض كود هذين
الإجراءين أو تعديلهما أو تشغيلهما.
ويريك
الزر "الكتب1" في المشروع Factories كيف يمكن استدعاء الإجراء GetAuhorBooks من برنامجك، وسنفهم كيف يفعل هذا لاحقا.
من
كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.