يتمتع ASP بواحدة من أهم الوظائف، وهي أنه يسمح لك بالاتصال بقاعدة البيانات بسهولة شديدة. عادةً ما يكون متصلاً بقاعدة بيانات Access أو SQL. نظرًا لأن Access هو الأسهل للبدء، وربما يكون Access مثبتًا بالفعل على جهازك، فسوف نستخدم Access في الأمثلة التالية. بمجرد أن تتعلم الأساليب التقنية الأساسية لربط قواعد بيانات ASP وAccess، عند البدء في استخدام خادم SQL، ستجد أن التقنيات الأساسية المطلوبة لكليهما هي نفسها بشكل أساسي.
إنشاء اسم مصدر البيانات (DSN)
يمكنك جعل قاعدة البيانات الخاصة بك متاحة للاستخدام في ASP عن طريق إنشاء DSN للنظام لقاعدة البيانات الخاصة بك في لوحة التحكم. يمكنك إنشاء العديد من أرقام DSN على جهاز الكمبيوتر المحلي لديك، بحيث يتوافق كل DSN مع قاعدة بيانات مختلفة تستخدمها. بعد إعداد DSN، يمكنك اختبار صفحتك على خادمك المحلي. إذا كان موقع الويب الخاص بك
يخدمه مزود خدمة الإنترنت، وكان مزود خدمة الإنترنت يدعم ASP، فمن المحتمل جدًا أنه سيوفر واجهة المستخدم الرسومية لإنشاء DSN لقاعدة البيانات الخاصة بك.
في نظام التشغيل Windows 95/98/NT، افتح لوحة التحكم (قائمة ابدأ -> الإعدادات -> لوحة التحكم) وانقر نقرًا مزدوجًا فوق ODBC للدخول.
حدد DSN للنظام وانقر فوق "إضافة".
حدد "برنامج تشغيل Microsoft Access" ثم انقر فوق "إنهاء".
قم بملء اسم مصدر البيانات. هذا هو الاسم الذي تعطيه لقاعدة البيانات الخاصة بك، لذا فهي نفس عملية الاسم المستعار.
انقر فوق الزر تحديد في تحديد قاعدة البيانات لاستعراض الموقع في النظام حيث تم تخزين قاعدة بيانات Access التي قمت بإنشائها.
انقر فوق موافق
سيظهر DSN الجديد الآن في DSN للنظام وسيكون متاحًا على الخادم المحلي الخاص بك.
الاتصال بقاعدة البيانات لنقم بإعداد اتصال أقل من DSN ونرى كيفية الاتصال بقاعدة البيانات. عندما تقوم بإنشاء DSN، فإنك تقوم بالفعل بتخزين بعض المعلومات حول قاعدة البيانات، لذلك لا تحتاج إلى تكرارها في كل مرة تحتاج فيها إلى استخدام بعض المعلومات مثل نوع قاعدة البيانات والاسم وموقع التخزين والخصائص الاختيارية والمستخدمين وكلمات المرور.
لإنشاء اتصال بدون DSN، يتعين عليك تقديم نفس المعلومات. يوضح المثال التالي كيفية إنشاء اتصال DSN أقل بقاعدة بيانات تسمى المنتجات:
<%
StrConnect = "برنامج التشغيل={برنامج تشغيل Microsoft Access (*.mdb)}؛ DBQ=C:dbproducts.mdb"
تعيين objConn = Server.CreateObject ("ADODB.Connection")
objConn.OpenStrConnect
%>
يحدد السطر الثاني برنامج التشغيل والمسار الفعلي لقاعدة البيانات. من أجل استخدام اتصال أقل من DSN، تحتاج إلى معرفة موقع الملف الفعلي (المسار المطلق). يوفر Server.MapPath بيئة عمل بسيطة لأي شخص يستخدم خدمات الاستضافة للعثور على مسارات الوصول الفعلية التي يصعب العثور عليها.
إذا قمنا بإنشاء نظام DSN يسمى المنتجات، فيجب أن يكون رمز الاتصال:
<%
تعيين objConn = Server.CreateObject ("ADODB.Connection")
objConn.فتح "المنتجات"
%>
الآن بعد أن أصبحت قاعدة البيانات مفتوحة، ماذا يمكنك أن تفعل؟ أول شيء هو بالطبع قراءة سلسلة من السجلات في قاعدة البيانات ووضعها في صفحتك. ولكن، قبل ذلك، تحتاج إلى مجموعة السجلات.
مجموعة السجلات
مجموعة السجلات هي كافة المعلومات المخزنة في جدول قاعدة بيانات خاص. ولذلك، عند فتح مجموعة السجلات هذه، يمكن الوصول إلى محتويات كافة الصفوف والأعمدة في الجدول. تحتاج إلى فتح مجموعة السجلات هذه تمامًا مثلما تحتاج إلى فتح اتصال قاعدة البيانات. أوامرهم متشابهة:
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "downloadable"، strConnect، 0,1,2
بإنشاء مجموعة سجلات (objRec) تسمى جدول قابل للتنزيل، والذي تم تعريفه في strConnect في قاعدة بيانات المنتجات. باستخدام مجموعة السجلات المفتوحة، يمكننا تكرار هذا الجدول وعرض كافة محتوياته على الشاشة. وبدلاً من ذلك، يمكننا اختبار محتويات حقول محددة، أو مجرد كتابة ما يهمنا على الشاشة.
يمثل كل عمود حقلاً. لذلك، إذا كان جدول قاعدة البيانات يبدو كما يلي:
معرف المنتج | اسم | SKU | الملف |
1 | PR12345 | المنتج A | install_a.exe |
2 | PR12346 | المنتج B | Install_b.exe |
بعد ذلك، لدينا محتويات الحقول التالية: ProductID وSKU والاسم والملف. من المرجح أن يحتوي الجدول الخاص بك على العديد من الحقول الإضافية، والتي قد تحتوي على أشياء كثيرة، مثل السعر أو وصف المنتج (السلعة). لكن هذا الرسم التخطيطي يمكن أن يوفر لك المفهوم الأساسي لجداول قاعدة البيانات.
يعد ملء محتويات مجموعة السجلات أمرًا سهلاً للغاية باستخدام مجموعة السجلات. إذا كنت تريد تكرار قاعدة البيانات وطباعة كافة المعلومات على الشاشة، فيمكنك القيام بما يلي:
while NOT objRec.EOF
يقول للقيام بذلك طالما أننا لم نصل إلى نهاية الملف
Response.WriteobjRec("معرف المنتج") & "،"
Response.WriteobjRec("SKU") & "،"
Response.WriteobjRec("الاسم") & "،"
Response.WriteobjRec("ملف") و"<BR>"
objRec.MoveNext
ويند؛
حتى إذا لم تستخدم الحلقات بهذه الطريقة، فلا يزال بإمكانك قراءة هذا الرمز لكتابة المعلومات إلى سلاسل مفصولة بفواصل، وعندما يتم إنشاء صف جديد في جدول قاعدة البيانات، قم بإنشاء صف جديد لتسجيل هذا الصف في الجدول. يمكنك استخدام نفس الطريقة لكتابة البيانات إلى جدول HTML. باستخدام Response.Write لإضافة علامات TABLE الخاصة بك، هناك بعض الأشياء التي يجب وضعها في الاعتبار:
علامات HTML الخاصة بك والمحتوى الموجود بين علامتي الاقتباس.
إذا كانت العلامات أو المحتوى الخاص بك يستخدم علامات الاقتباس، فتأكد من استخدام علامات الاقتباس المزدوجة:
<حجم الخط = ""+2"">.
استخدم & لتوصيل المتغيرات ومعلومات HTML/المحتوى لتحديد الحقول في مجموعة السجلات. افترض أن قاعدة بيانات منتجاتنا تحتوي أيضًا على حقل يسمى نظام التشغيل. افترض أن هذا الحقل هو محدد النظام الأساسي. مرة أخرى، لنفترض أن البيانات المخزنة في هذا الحقل يمكن أن تكون فقط كما يلي: Windows NT، أو Windows 95، أو Windows 98، أو Windows، أو Mac، أو Unix، أو Linux.
بعد ذلك، يمكننا تأكيد الحقول التي نحتاج إلى طباعتها على الشاشة والحقول التي نريد تجاهلها. وبدلاً من ذلك، يمكننا تحديد الحقول التي تستخدم تنسيقًا واحدًا وتستخدم الحقول الأخرى تنسيقًا مختلفًا، على سبيل المثال، باستخدام ألوان مختلفة.
إن استخدام حلقة If... البسيطة يمكن أن يمنحنا مزيدًا من التحكم في قاعدة البيانات. لنقم أولاً بطباعة السجلات الخاصة بمنتجات Windows NT:
<TABLE BORDER=0 WIDTH=600>
<TR><TD COLSPAN=4 ALIGN=CENTER><FONT SIZE="+1"<<B>منتجات Windows NT</B></FONT></TD></ تر>
<%
بينما لا objRec.EOF
إذا كان objRec("OS") = "Windows NT" ثم يحدد Response.Write المعايير
"<TR><TD BGCOLOR=""#FFFF66"">" & objRec("ProductID") & " </TD>"
Response.اكتب "<TD>" & objRec("SKU") & "</TD>"
Response.اكتب "<TD>" & objRec("Name") & "</TD>"
Response.اكتب "<TD>" & objRec("File") & "</TD></TR>"
ينتهي إذا
objRec.MoveNext
وند
٪>
</الجدول>
إضافة سجل بمجرد البدء في استخدام مجموعات السجلات وASP، ستحتاج حقًا إلى أن تكون قادرًا على إضافة البيانات إلى قاعدة البيانات عبر الشبكة. تعد إضافة المحتوى أمرًا مهمًا، على سبيل المثال، عندما تريد من زوار الويب الخاص بك ترك وجهات نظرهم وآرائهم، أو عندما تريد إجراء تحديثات إدارية.
يفتح التعليمة البرمجية التالية مجموعة سجلات مرتبطة بجدول قاعدة بيانات بأسماء الكتب ومؤلفيها. ربما تكون قد رأيت هذا من قبل، ولكن هذه المرة، تحدد المواصفات الثلاثة الأخيرة أنواعًا مختلفة من المؤشرات: adOpenStatic، وadLockOptimistic، وadCmdTable:
<% ' تم إجراء اتصال قاعدة البيانات بالفعل هنا؛
تعيين objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "الكتب"، bookdb، adOpenStatic، adLockOptimistic، adCmdTable
%>
(إذا كنت لا تستخدم ملف النسخ الخاص بـ adovbs.inc، فيجب أن يكون السطر الثالث: objRec.Open "books"، bookdb، 3,3,2.
مجموعة السجلات جاهزة الآن لتلقي البيانات، ما عليك سوى ذلك لنقول له ما يجب إضافته. في هذه الحالة، لنفترض أننا أخذنا المتغيرات من الجدول: strBookTitle وstrBookAuthor. يحتوي جدول الكتب لدينا على حقلين يسمى العنوان والمؤلف، لذا يمكننا إضافة سجل جديد باستخدام العبارة التالية:
<%
objRec.AddNew
ObjRec("Title") = strBookTitle
objRec("Author") = strBookAuthor
objRec.Update
%>
يمثل strBookTitle وstrBookAuthor القيم وعادة ما يتم الوصول إليها من قبل المستخدمين. إذا كنت تريد فقط اختبار وظيفة الإضافة، فيمكنك إضافة متغير للعنوان والمؤلف - فقط تذكر استخدام علامات الاقتباس. في المرة الأولى التي تستخدمها، من المحتمل أن تفتح قاعدة البيانات الخاصة بك على الفور للتأكد من حدوث التحديثات.
نوع مجموعة السجلات في المثال objRec.Open الموضح، ستجد الكلمات 0 و1 و2 في النهاية. تمثل هذه الأرقام أنواعًا مختلفة من المؤشرات. يعتمد النوع الذي تستخدمه على الغرض الذي ستستخدمه من أجله. على سبيل المثال، إذا لم تكن بحاجة إلى تعديل أو إضافة أي سجلات، فيمكنك استخدام نوع القفل. عندما تخطط لتعديل قاعدة البيانات أو تحديثها، سيكون النوع الذي تختاره مختلفًا.
0,1,2 تمثل في الواقع:
adOpenForwardOnly، وadLockReadOnly، وadCmdTable
بالطبع، إذا كان لديك بالفعل نسخة احتياطية من adovbs.inc على الخادم الخاص بك، فيمكنك أيضًا استخدام هذه الكلمات مباشرة دون استخدام الأرقام. يحتوي adovbs.inc على هذه الثوابت الثلاثة وقائمة بالثوابت الأخرى.