الدرس الخامس: ربط صفحات ASP بقاعدة البيانات
صممنا في الدرس السابق قاعدة بيانات باستخدام برنامج Microsoft Access 2000. وفي هذا الدرس، سنتعلم كيفية ربط القاعدة بصفحات ASP واستعراض محتوياتها.
قم بفتح الصفحة الأولى (default.asp) لإجراء بعض التعديلات عليها. لذا قم بحفظها باسم (tech.asp). فكل التغييرات التي سنقوم بهذا ستكون على ملف tech.asp
في الصفحة الأولى كنا قد كتبنا جملة ترحيبية لزوار الموقع. أما في هذه الصفحة فسنستبدلها بجملة أخرى تبين ماهية الصفحة. فسنكتب:
إليكم آخر المستجدات على الساحة التقنية
والآن.. سنبدأ بالجزء الأهم.. وهو كتابة نصوص ASP .
نصوص ASP تكتب دائما بين هاتين العلامتين <% %> .لذا، افتح نصوص HTML واكتب الجملة التالية في أول سطر:
Code Sample |
<%@ Language=VBScript CodePage = "1256"%> |
هذا السطر يشير إلى أننا سنستخدم لغة VBScript في هذه الصفحة. وسطر (تحديد اللغة) يجب أن يكون دائما في بداية الصفحة.
واكتب التالي تحت الجملة الترحيبية:
Code Sample |
<% Dim ConnectionString Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("\news\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
%>
|
السطران الأول والثاني (Dim): يتم فيها تحديد المتغيرات، وسنتحدث عن المتغيرات أكثر في المستقبل.
السطر الثالث (ConnectionString): يحدد طريقة فتح قاعدة البيانات، واسم القاعدة والمسار إليها. يمكنك تغيير اسم القاعدة ومسارها بما يتناسب مع ما قمت به على جهازك. لقد قمت بتسمية القاعدة project.mdb وما قبل الاسم هو مسار الوصول إليها.
السطر الرابع (Set ADO): يحدد اسم المتغير الذي سيقوم بالربط.. وهو في مثالنا ADO ويمنك تغييره بما يتناسب معك، إلا أن عليك استخدامه كثيرا، لذا لا أفضل تغييره حتى لا يسبب لك بعض الصعوبة في متابعة الدروس.
السطران الخامس والسادس: يقومان بفتح القاعدة.
ما قمنا به حتى هذه الخطوة، هو الوصول للقاعدة فقط. والخطوة التالية هي الوصول للبيانات التي بالقاعدة. ولعمل ذلك قم بكتابة التالي تحت عبارة ADO.open مباشرة:
Code Sample |
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
|
السطر الأول (selectSQL): تحدد أمر الاختيار Select وفيها يثم اختيار البيانات من القاعدة حسب شروط يتم تحديدها. في حالتنا هذه طلبنا اختيار:
1- جميع البينات (ويمثلها رمز *) , ويمكن استبدالها باسم عمود او خانة معية من الجدول.
2- من جدول tech_news
أي أن هذان هما الشرطان الواجب القيام بهما.
السطر الثاني (set rs): تنفيذ الأمر.
ما قمنا به حتى الآن هو فتح القاعدة، واستدعاء البيانات منها. وما سنقوم به الآن هو طباعة هذه المعلومات. قم بكتابة التالي تحت عبارة set rs=ADO.execute(selectSQL) مباشرة:
Code Sample |
response.write "العنوان : " & rs("subject")
response.write "التاريخ : " & rs("add_dat")
response.write "الخبر : " & rs("body")
|
response.write تقوم بطباعة النتائج، (*)rs ، تمثل النتائج. حيث يكتب اسم الجدول المراد عرض بياناته بين علامات التنصيص " "
قم بتشغيل الصفحة tech.asp وذلك بفتح المتصفح Internet Explorer وفي شريط العنوان Address Bar اكتب العنوان الموقع، وذلك بكتابة اسم جهازك ومن ثم المجلد الذي يحتوي الموقع:
http://asp/news/default.asp
ملاحظة: ASP في العنوان تمثل اسم الجهاز، وهذا الاسم يختلف من جهاز لآخر. لمعرفة اسم جهازك، افتح لوحة التحكم Control Panel ومنها افتح الشبكة Network واختر Identification لترى: Computer Name
يمكنك الاستعاضة عن اسم الجهاز بكلمة localhost أي أن العنوان سيصبح كالتالي:
http://localhost/news/default.asp
ستظهر صفحة عالم اليوم بالشكل التالي:
عالم اليوم
فاضغط على رابط: أخبار تقنية. لترى النتيجة:
Code Sample |
إليكم آخر المستجدات في الساحة التقنية
العنوان : اختراق مواقع حركة طالبان على الإنترنتالتاريخ : 31/9/2001الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
|
مبروك. لقد قام الـ Code الذي كتبته بقراءة محتويات القاعدة وعرضها. بالطبع توجد إشكاليات بسيطة في البيانات المعروضة، وسنشرح طريقة التغلب عليها في الدروس القادمة. لكن المهم في هذا الدرس، هو فهمه جيدا لأن معظم الدروس التالية تعتمد على هذا الدرس.
أخيرا، يفضل إغلاق ربط القاعدة بهذا السطر تحت عبارة response.write "الخبر : " & rs("body") مباشرة:
-----------------------------------------------------
يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: أخبار تقنية
سيتم وضع رابط لسحب هذه الصفحة في الدرس الثامن - إن شاء الله - وذلك بعد الانتهاء من تصميم صفحة tech.asp بالكامل.