استخدام الإجراءات المخزنة لتنفيذ الوصول إلى قاعدة بيانات ASP
الكاتب:Eve Cole
وقت التحديث:2009-06-24 17:21:43
1. نظرة عامة على ADO
تعد كائنات بيانات ActiveX (ADO) تقنية سهلة الاستخدام وقابلة للتطوير لإضافة إمكانية الوصول إلى قاعدة البيانات إلى صفحات الويب الخاصة بك. يمكنك استخدام ADO لكتابة برامج نصية موجزة وقابلة للتطوير للاتصال بمصادر البيانات المتوافقة مع OLE DB، مثل قواعد البيانات وجداول البيانات أو ملفات البيانات التسلسلية أو أدلة البريد الإلكتروني. OLE DB هي واجهة برمجة على مستوى النظام توفر مجموعة من واجهات COM القياسية لعرض وظائف نظام إدارة قاعدة البيانات. باستخدام نموذج كائن ADO، يمكنك الوصول بسهولة إلى هذه الواجهات (باستخدام لغة برمجة نصية مثل VBScript أو JScript) وإضافة وظائف قاعدة البيانات إلى تطبيق الويب الخاص بك. بالإضافة إلى ذلك، يمكنك استخدام ADO للوصول إلى قواعد البيانات المتوافقة مع اتصال قواعد البيانات المفتوح (ODBC).
إذا كنت كاتب نصوص ولديك بعض المعرفة بالاتصالات البينية لقاعدة البيانات، فستجد أن بناء جملة أمر ADO بسيط وسهل الاستخدام. إذا كنت مطورًا ذا خبرة، فسوف تقدر الوصول عالي الأداء والقابل للتطوير الذي توفره ADO لمجموعة متنوعة من مصادر البيانات.
2. يتم تنفيذ الطرق العامة للوصول إلى قاعدة البيانات بشكل عام والوصول إلى صفحة الويب وفقًا للخطوات التالية. أولاً، قم بإنشاء كائن من واجهة ADODB.Connection، ثم قم بربط مصدر البيانات المقابل بهذا الكائن (أنت). يمكن استخدام مصدر البيانات المسمى ومصدر البيانات غير المسمى)، وإنشاء مجموعة سجلات أو عدم إنشائها حسب الحاجة، ثم الارتباط بمصدر البيانات واستخدام طريقة التنفيذ أو الفتح لتشغيل الجدول المقابل.
الطريقة العامة لوصول ASP إلى قاعدة البيانات:
<
تعيين oConn=Server.CreateObject("ADODB.Connection")
تعيين oRS=Server.CreateObject("ADODB.RecordSet")
تعيين strConn = "Provider = SQLOLEDB؛ معرف المستخدم = sa؛ الكتالوج الأولي = Pubs؛ مصدر البيانات = " &request.ServerVariables ("SERVER_NAME")
oConn.open strConn
تعيين ORS=oConn.execute("اختر * من الاختبار")
>
يقدم ما سبق كيفية استخدام OLEDB للارتباطات غير المسماة، إذا كان رابطًا مسمىًا، فقم بتعيينه كاختبار لمصدر البيانات، وكان اسم المستخدم وكلمة المرور فارغين، ما عليك سوى إعادة كتابة العبارة أعلاه oConn.open "اختبار". ""،""
يقدم ما سبق بإيجاز الطرق العامة للوصول إلى قاعدة البيانات في صفحات الويب، وهي بالفعل ناضجة جدًا ومفيدة جدًا. إذا كان الوصول إلى بيانات معينة معقدًا للغاية في الممارسة العملية، فستستغرق كتابة هذه الطريقة ما يقرب من 10 عبارات SQL بالإضافة إلى ذلك، يكون من الضروري في بعض الأحيان استخدام نفس عملية المعالجة في صفحات ويب مختلفة، وهذا هو الأكثر فائدة لاستخدام الإجراءات المخزنة، وهي أن الإجراءات المخزنة تكون تقنية للغاية ويتم تخزينه في قاعدة بيانات الخادم البعيد.
3. يوفر استخدام الإجراءات المخزنة في ASP ADO الوصول إلى الإجراءات المخزنة، الأمر الذي يتطلب استخدام كائن الأمر، ويمكن للمستخدمين تنفيذ الإجراءات المخزنة لخادم SQL مباشرة، ويمكن أن تكون المعلمات المطلوبة في الأمر تتم معالجتها باستخدام خصائصه Pamaters.
لاحظ أنه لكي يكون كائن الأمر صالحًا، يجب أن يكون مرتبطًا بكائن اتصال عن طريق تعيين خاصية ActiveConnection لكائن الأمر إلى كائن الاتصال. إذا تعذر التعرف على كائن الاتصال، فسيكون كائن الأمر غير صالح حتى تقوم بربطه بالاتصال.
< خافت أوكون
خافت strConn
خافت أوكمد
خافت أورس، أورس1
خافت أأ
com.dimsql
تعيين oConn = Server.CreateObject("ADODB.Connection")
تعيين oCmd = Server.CreateObject("ADODB.Command")
مجموعة ors1=Server.CreateObject("ADODB.RecordSet")
'افتح الرابط، استخدم معرف المستخدم SA، كلمة المرور فارغة، اتصل بقاعدة البيانات على الخادم المحلي
strConn="Provider=SQLOLEDB;معرف المستخدم=sa;الكتالوج الأولي=الناشرين;مصدر البيانات="& Request.ServerVariables("SERVER_NAME")
'إذا قمت بالاتصال بقاعدة بيانات بعيدة، فإن عنوان قاعدة البيانات هو: 10.82.88.105، والمستخدم هو tmp، وكلمة المرور هي 123.
'يمكن استخدام الطريقة التالية' strConn="Provider=SQLOLEDB;معرف المستخدم=tmp;pwd=123;الكتالوج الأولي=tjbb;مصدر البيانات ="& "10.82.88.110"
أوكون.افتح strConn
'أضف الرابط الذي تم إنشاؤه إلى سمة الارتباط النشط للأمر
اضبط oCmd.ActiveConnection = oConn
'تعيين إجراء الاتصال المخزن حسب الملوك والمعلمات، المعلمات حسب؟ يقدم
oCmd.CommandText = "{استدعاء byroyalty(?)}"
oCmd.Parameters.Append oCmd.CreateParameter("@Percentage"، adInteger، adParamInput)
' توفير معلمات الإدخال
oCmd("@النسبة المئوية") = 75
"يمكن أيضًا تحقيق استخدام معلمات الإدخال المذكورة أعلاه في asp بدون سمات المعلمات، ما عليك سوى استخدام & في VB لتكوين البيانات المقابلة في نص الأمر" يعد استخدام المعلمات مفيدًا بشكل خاص أثناء الإخراج
تعيين oRs = oCmd.Execute
ors1.activeconnection=oconn
'يمكن أيضًا استخدام عبارات SQL العامة في كائن الأمر هذا باستخدام سمات المصدر والمفتوح، حيث يشير المصدر إلى مصدر البيانات.
ors1.source ="select * from [tmptable] حيث السنة=2000 والشهر=1"
ors1.cursorttype=adopenstatic
ors1.open
>
4. مقدمة إلى الإجراءات المخزنة في SQL باستخدام لغة SQL، يمكنك كتابة الإجراءات المخزنة للوصول إلى قاعدة البيانات.
إنشاء PROC[EDURE] اسم الإجراء [؛الرقم]
[
{@parameter data_type} [VARYING] [= افتراضي] [OUTPUT]
]
[،...ن]
[مع
{
إعادة الترجمة
|.تشفير
|. إعادة الترجمة، التشفير
}
]
[للنسخ المتماثل]
مثل
sql_statement [...ن]
المحتوى الموجود داخل [ ] اختياري، بينما المحتوى الموجود داخل () مطلوب.
مثال: إذا أراد المستخدم إنشاء إجراء مخزن Select_delete لحذف السجلات في الجدول tmp، فيمكن كتابته على النحو التالي:
إنشاء Proc Select_del As
حذف تمب
مثال: يريد المستخدم الاستعلام عن الإجراء المخزن لبيانات سنة معينة في جدول tmp
إنشاء proc Select_query @year int as
حدد * من tmp حيث year=@year
هنا @year هو مثال معلمة لإجراء مخزن: يبدأ هذا الإجراء المخزن من عقدة معينة n للعثور على العقدة الأصلية ذات المستوى الأعلى ويمكن تنفيذ هذه العملية المستخدمة بشكل متكرر من خلال إجراء مخزن ويمكن إعادة استخدامها في صفحات الويب لتحقيقها تقاسم.
فارغة: تشير إلى أن العقدة هي عقدة ذات مستوى أعلى
fjdid (رقم العقدة الأصلية)
العقدة n ليست فارغة: تشير إلى رقم العقدة الأصلية للعقدة
dwmc (اسم الوحدة)
إنشاء proc search_dwmc @dwidold int،@dwmcresult varchar(100) الإخراج
مثل
أعلن @stop int
أعلن @result varchar (80)
أعلن @dwmc varchar(80)
أعلن @dwid int
تعيين nocount على
اضبط @stop=1
تعيين @dwmc = ""
حدد @dwmc=dwmc,@dwid=convert(int,fjdid) من jtdw حيث المعرف=@dwidold
تعيين @result=rtrim(@dwmc)
إذا @dwid=0
اضبط @stop=0
بينما (@stop=1) و(@dwid<>0)
يبدأ
تعيين @dwidold=@dwid
حدد @dwmc=dwmc,@dwid=convert(int,fjdid) من jtdw حيث المعرف=@dwidold
إذا @@rowcount=0
تعيين @dwmc = ""
آخر
تعيين @result=@dwmc+@result
إذا (@dwid=0) أو (@@rowcount=0)
اضبط @stop=0
آخر
يكمل
نهاية
تعيين @dwmcresult=rtrim(@result)
يمكن أن يؤدي الاستخدام الكامل والمعقول للإجراءات المخزنة إلى تحسين إنتاجية الخادم. يستخدم المؤلف الإجراءات المخزنة للحصول على البيانات من ما يقرب من 20 جدولًا ودمجها في جدول عام، مما يؤدي إلى إنشاء ما يقرب من 20000 سجل، والوقت المطلوب حوالي 7 ثوانٍ يمكن أن تعمل العملية على تحسين تطوير الخادم إلى مستوى أعلى بمساعدة صفحات الويب الديناميكية الأكثر معقولية، والاستفادة الكاملة من الإجراءات المخزنة، والتي يمكن أن تقلل من المعالجة الثقيلة الناجمة عن تصميم الويب، بحيث يمكن مشاركة التعليمات البرمجية المكتوبة واستخدامها بشكل معقول، و يمكن إخفاء الكود داخل قاعدة بيانات الخادم، مع الحفاظ على سرية بعض التقنيات، وهذه أيضًا سمة رئيسية للإجراءات المخزنة وآمل أن يستفيد منها القراء.