هناك العديد من المقالات حول ASP والإجراءات المخزنة ، لكنني أشك في أن المؤلفين قد مارسوها بالفعل. قرأت الكثير من المعلومات ذات الصلة عندما كنت في البداية ووجدت أن العديد من الأساليب المقدمة لم تكن كذلك في الممارسة العملية. بالنسبة للتطبيقات البسيطة ، قد تكون هذه المواد مفيدة ، ولكن فقط لأنها ببساطة متشابهة ، وينتحلون بعضها البعض ، وستكون تطبيقات أكثر تعقيدًا قليلاً.
الآن ، يمكنني الوصول إلى SQLServer بشكل أساسي عن طريق استدعاء الإجراءات المخزنة. النص التالي هو ملخص للممارسة ، وآمل أن يكون مفيدًا للجميع.
الإجراء المخزن هو واحد أو أكثر من أوامر SQL المخزنة في قاعدة البيانات ككائنات قابلة للتنفيذ.
التعريف هو دائما مجردة. الإجراءات المخزنة هي في الواقع مجموعة من عبارات SQL التي يمكنها إكمال عمليات معينة ، ولكن يتم وضع هذه المجموعة من العبارات في قاعدة البيانات (سنتحدث فقط عن SQLServer هنا). إذا قمنا بإنشاء إجراءات مخزنة وإجراءات استدعاء في ASP ، فيمكننا تجنب خلط عبارات SQL مع رمز ASP. هناك ما لا يقل عن ثلاث فوائد للقيام بذلك:
أولاً ، تحسين الكفاءة بشكل كبير. الإجراء المخزن نفسه سريع للغاية ، ويمكن أن يقلل الإجراء المخزّن بشكل كبير من عدد التفاعلات مع قاعدة البيانات.
ثانياً ، تحسين السلامة. إذا تم خلط عبارات SQL في رمز ASP ، بمجرد فقدان الرمز ، فهذا يعني أن هيكل المكتبة قد فقد.
ثالثًا ، إنه يفضي إلى إعادة استخدام عبارات SQL.
في ASP ، يتم استدعاء الإجراءات المخزنة بشكل عام من خلال كائنات الأوامر. وفقًا لمواقف مختلفة ، تقدم هذه المقالة أيضًا أساليب استدعاء أخرى. لراحة التفسير ، يتم التصنيف البسيط التالي بناءً على مدخلات وإخراج الإجراء المخزن:
1. فقط الإجراءات المخزنة الإرجاع لمجموعة سجلات واحدة
لنفترض أن هناك الإجراء المخزن التالي (الغرض من هذه المقالة ليس وصف بناء جملة T-SQL ، وبالتالي فإن الإجراء المخزن يعطي رمزًا فقط ولا يفسر):
/*sp1*/
نسخة الكود كما يلي:
CreateProceduredbo.getuserList
مثل
setnocounton
يبدأ
حدد*fromdbo. [userInfo]
نهاية
يذهب
يحصل الإجراء المخزّن أعلاه على جميع السجلات في جدول UserInfo ويعيد مجموعة سجلات. رمز ASP لاستدعاء الإجراء المخزن من خلال كائن الأوامر هو كما يلي:
'** إجراء الاتصال من خلال كائن الأوامر **
dimmycomm ، myrst
setMyComm = server.createBject ("adodb.command")
MyComm.ActiveConnection = myconstr'myconstr هي سلسلة اتصال قاعدة البيانات
MyComm.CommandText = "getUserlist" "حدد اسم الإجراء المخزن
يشير MyComm.CommandType = 4 'إلى أن هذا إجراء مخزن
MyComm.preped = true 'يتطلب تجميع أوامر SQL أولاً
setMyRst = mycomm.execute
setMyComm = لا شيء
يتم تعيين مجموعة السجلات التي تم الحصول عليها بواسطة الإجراء المخزن إلى myrst. بعد ذلك ، يمكن تشغيل myrst.
في الكود أعلاه ، تشير خاصية CommandType إلى نوع الطلب ، والقيمة والوصف هي كما يلي: