تقدم هذه المقالة سبع طرق لتنفيذ عرض ترقيم الصفحات في ASP.
في نظام برمجة ASP من Microsoft ، يجعل إنشاء كائنات ADO من الوصول إلى قواعد البيانات من صفحات الويب مهمة سهلة ، خاصةً كائن مجموعة سجلات ADO يجعلها أكثر ملاءمة ومجانية لعرض إخراج بيانات التحكم. في Visual Interdev6.0 (يشار إليها فيما يلي باسم VI6.0) ، نظرًا لإدخال نماذج الكائنات مثل نموذج كائن النص (المشار إليه فيما يلي باسم SOM) ، والتحكم في وقت التصميم (يشار إليه فيما يلي باسم DTC) ، وبيئة البيانات نموذج الكائن (المشار إليه فيما يلي باسم DEOM) ، اجعل صفحات الويب أكثر ملاءمة للوصول إلى قاعدة البيانات.
نظرًا للموضوع ، فيما يتعلق بتوصيلات قاعدة البيانات ، فإن ما يلي يعطي فقط الكود والتعليقات الموجزة ، ويركز على كيفية استخدام كائنات سجلات السجلات (أو عناصر التحكم) لتنفيذ عرض ترقيم الصفحات لسجلات البيانات. وفقًا لفهمي ، فإن مفتاح عرض ترقيم الصفحات هو إتقان خصائص وطرق كائن سجل ADO أو DTC (التحكم في وقت التصميم).
يتم تلخيص هذه الأسلحة السبعة المعروضة على الصفحات إلى أربع فئات: الأسلحة الأولى والثانية التي أسميها بشكل مؤقت طريقة ASP النقية.
هذه هي الطريقة الأكثر استخدامًا على مواقع ASP المحلية. إن تنفيذ هاتين الطريقتين هو الأسهل في الفهم ، يتم استخدام مفهوم الكائن الأقل ، والحد الأدنى من متطلبات بيئة التطوير (مجرد المفكرة). يمكن القول أن جوهر هاتين الطريقتين لا يزال هو فكرة البرمجة الخاصة بـ CGI ، والتي تقدم فقط كائنات ADO في البرنامج.
أساليب DHTML الرابعة والخامسة تدعى SOM مؤقتًا.
تتطلب هاتان الطريقتان استخدام نموذج كائن البرنامج النصي من Microsoft (نموذج كائن البرنامج النصي) والميزات الجديدة لربط قاعدة البيانات لكائنات الجدول في DHTML في VI6.0 (العديد من الكتب والمقالات تقدم فقط ميزات CSS الخاصة بـ DHTML التطبيق في تصميم النمط يتجاهل إدخال خصائص ربط البيانات الخاصة به ، ويدرك دوران الصفحة على جانب العميل. ومع ذلك ، يتطلب الأمر أن يدعم متصفح المستخدم DHTML ، مثل: Microsoft Internet Explorer 4.0 وما فوق.
تتم تسمية الطريقة السادسة مؤقتًا بشكل مؤقت.
إنه يتطلب التطوير في بيئة VI6.0 ، والتي تستخدم العديد من عناصر التحكم في DTC في نموذج كائن البرنامج النصي الذي اقترحه Microsoft: RecordSet ، PageObject ، الشبكة ، إلخ لتنفيذ التحكم في الصفحة على جانب الخادم (العميل). هذه طريقة برمجة مثيرة وجديدة تعامل صفحات الويب ككائنات (يختلف نموذج الكائن هذا عن نموذج كائن DOM التقليدي ---- ) ، والتي تنفذ حقًا برمجة الكائنات الموجهة لصفحات الويب. لكن لسوء الحظ ، ربما تكون قدرتي الشخصية محدودة ، وأعتقد شخصياً أن هذه التكنولوجيا ليست ناضجة للغاية بعد.
تتم تسمية الطريقة السابعة مؤقتًا.
كما أنه يستخدم نموذج كائن بيئة البيانات الذي تم إنشاؤه في VI6.0 لإنشاء كائنات مجموعة السجلات. هذه أيضًا طريقة جديدة نادرة نسبيًا في برمجة الويب.
يمكن نسخ جميع رموز المصدر المذكورة لاحقًا.
قبل أن نبدأ في تقديم العديد من أساليب الترحيل بالتفصيل ، دعنا ننشئ قاعدة بيانات: استخدم الوصول في Office97 لإنشاء موظف. لماذا هذا بسيط؟
الطريقة الأولى لاستبدال المعلمات مباشرة
تتمثل هذه الطريقة في إنشاء كائن مجموعة سجل يدويًا ، واستخدام صفحاته (حدد عدد السجلات المعروضة لكل صفحة) ، وخصائص PageCount (إجمالي الصفحة) وخصائص Absolutepage (رقم الصفحة الحالية) للتحكم في إخراج الصفحة. يستخدم ترحيل الصفحة طريقة معلمات ترقيم الصفحات مباشرة للتحكم في دوران الصفحة. اسم صفحة الويب هو emp1.asp. رمز المصدر كما يلي:
- < ٪ // إنشاء اتصال بقاعدة بيانات الموظف.
- setConn = server.createObject (adodb.connection)
- conn.opendriver = {microsoft accessDriver (*
- // إنشاء مثيل لكائن مجموعة السجلات لجدول EMP.
- setRs = server.createBject (adodb.recordset)
- Rs.Openemp ، Conn ، 3
- Pagesize = 10 // pagesize سمة تحدد عدد السجلات التي سيتم عرضها في كل صفحة.
- الصفحة = clng (طلب (صفحة)) 'نوع السلسلة تم تحويلها إلى نوع طويل
- ifpage < 1thenpage = 1
- IFPAGE> RS.PAGECOUNTTHENPAGE = RS.PAGECOUNT
- ifpage <> 1th
- Response.write < ahref = emp1.asp؟ page = 1 > page1 </a>
- Response.write < ahref = emp1.asp؟ page = & (page-1) & > الصفحة السابقة </a>
- Endif
- ifpage <> rs.pageCountthen
- Response.write < ahref = emp1.asp؟ page = & (page+1) & > الصفحة التالية </a>
- Response.write < ahref = emp1.asp؟ page = & rs.pageCount & > الصفحة الأخيرة </a>
- Endif
- استجابة.
- // عرض كل صفحة
- // إظهار الرأس
- استجابة. write < المركز >< TableBorder = 1 >
- Response.write < tr >< td > & rs.fields (Empid) .Name & </td >
- Response.write < td > & rs.fields (lastName) .Name & </td >
- Response.write < td > & rs.fields (firstName) .Name & </td ></tr >
- // دورة عرض كل سجل
- rs.absolutepage = صفحة // قم بتعيين رقم الصفحة إلى سمة Abssolbage لمعرفة رقم السجل الأول للصفحة الحالية
- بكر = 1Tors.pagesize //
- استجابة. write < tr >< td > & rs.fields (Empid) .value & </td >
- Response.write < td > & rs.fields (firstName) .value & </td >
- Response.write < td > & rs.fields (lastName) .value & </td ></tr >
- Rs.Movenext
- ifrs.eoftthenexitfor
- التالي
- استجابة. write </table ></center > ٪ >
النوع الثاني: طريقة معلمة نقل النموذج
هذه الطريقة هي نفسها الأولى عند إنشاء كائن مجموعة سجلات ، إلا أنه عند تشغيل تحكم الصفحة ، فإنها تستخدم عبارة حالة لتحقيق تحول الصفحة. اسم صفحة الويب هو: EMP2.asp. تحتوي هذه الطريقة على عيب في منطق البرمجة: ستقوم بتغيير الصفحة تلقائيًا بعد الضغط على زر الصفحة السابقة أو زر الصفحة التالية ثم الضغط على زر التحديث على المتصفح. رمز المصدر كما يلي:
- ifpagenum = thenpagenum = 1 // عرض من الصفحة الأولى
- // قم بإنشاء اتصال قاعدة البيانات وموسم سجل مثيل RS.
- نفس الطريقة الأولى ، تخطي هنا.
- rs.pagesize = 10'sit عدد السجلات المعروضة على صفحة إلى 10
- // تأكيد إجراء تشغيل الصفحة
- SelectCasereQuest (NAV)
- قضية
- الجلسة (Pagenum) = 1
- casefirst'firstrecord
- الجلسة (Pagenum) = 1
- caseprev'previousrecord
- ifsession (pagenum)> 1th
- الجلسة (pagenum) = الجلسة (pagenum) -1
- Endif
- casenext'nextrecord
- ifsession (pagenum) < rs.pageCountthen
- الجلسة (pagenum) = الجلسة (pagenum) +1
- Endif
- Caselast'lastRecord
- جلسة (Pagenum) = Rs.PageCount
- endselect
- rs.absolutepage = clng (الجلسة (pagenum)) // حدد رقم السجل الأول للصفحة الحالية
- // إظهار الصفحة الحالية
- نفس الطريقة الأولى ، تخطيها هنا.
- // SETTINGS BUNT BUNTER STEPTIONS
- < formmethod = getAction = emp2.asp >
- < inputType = submitName = navvalue = home>
- < inputType = submitValue = اسم الصفحة السابقة = Nav >
- < inputType = submitValue = اسم الصفحة التالية = Nav >
- < inputType = submitValue = اسم الصفحة الأخيرة = Nav ></form >
النوع الثالث: استخدم التحكم في الشبكة لتصميم الترحيل
من بين جميع الطرق ، هذه الطريقة هي الأسهل. تحتاج فقط إلى سحب التحكم في مجموعة السجلات والتحكم في الشبكة في DTC إلى صفحة الويب ASP. علاوة على ذلك ، يمكنك أيضًا اختيار ما إذا كنت تريد التحكم في دوران الصفحات على منصة الخادم أو على نظام العميل. العيب هو أنه يجب عليك عرضه بالتنسيق المقدم من ذلك ، ولا يمكنك التحكم في تنسيق العرض للجدول بنفسك.
الطريقة كما يلي:
بناء مشروع EMP.VIP في VI6.0. ثم أضف صفحة ويب ASP في المشروع: EMP3.asp.
الخطوة 1: حدد إضافة بيانات الاتصال ... على شريط القائمة VI6.0 ، واتبع مطالبات التنقل في أداة التطوير ، ويمكنك بسهولة إنشاء اتصال بقاعدة بيانات الموظف. اسحب التحكم في مجموعة التسجيلات من شريط أدوات DTC إلى صفحة الويب وقم بتعيين خصائصه. محدد كما هو موضح في الصورة:
عند سحب عنصر التحكم إلى صفحة الويب ، فإن VI6.0 سيطالبك تلقائيًا بما إذا كنت تريد استخدام نموذج كائن البرمجة النصية واضغط على نعم.
الخطوة 3: اسحب عنصر تحكم الشبكة من شريط أدوات DTC في صفحة الويب ، ثم انقر بزر الماوس الأيمن لتعيين خصائصه ، مثل: حدد اسم التحكم في مجموعة السجلات التي تم إنشاؤها في الخطوة الثانية ، وحدد الحقول في جدول EMP ، وكل صفحة كم عدد السجلات المعروضة وتنسيق العرض ، إلخ. إنها بسيطة للغاية ومريحة ، فقط اتبع مطالبات التنقل.
النوع الرابع: طريقة DHTML واحدة.
يتم عرض سجلات البيانات في جدول HTML. يستخدم خصائص ربط البيانات للجداول في DHTML للتحكم في عرض ترقيم الصفحات. العيب هو أن طريقة تشغيل صفحتك ستقتصر على طريقة محددة: فقط الصفحة السابقة والصفحة التالية ، ولكن ليس الصفحة الرئيسية والصفحة الأخيرة. نظرًا لأنه يتم التحكم فيه على جانب العميل ، فإن هذه الطريقة والطريقة الخامسة هي الأسرع ، ولكن للأسف لا يمكن استخدامها إلا على المتصفحات التي تدعم DHTML.
في DHTML ،
تتيح خاصية DataSRC للالتزام بمصدر بيانات ، ويحدد بيانات الخصائص الأخرى عدد السجلات المعروضة في صفحة في وقت واحد.
دعونا نلقي نظرة على المثال التالي:
الخطوة 1: اسحب التحكم في مجموعة السجلات إلى صفحة الويب التي تم إنشاؤها حديثًا EMP4.HTM وقم بتعيين خصائصها.
الخطوة 2: أدخل الرمز التالي:
- < tableId = table1datasrc =#recordset1_rdsdatapagesize = 5 > // على افتراض أن اسم التحكم في مجموعة السجل هو RecordSet1 قبل تعيينه. يتم عرض 5 سجلات لكل صفحة.
- < thead >
- < thalign = LeftWidth = 150 > Empid </th > // header header table table
- < thalign = LeftWidth = 200 > اسم LastName </th >
- < thalign = LeftWidth = 200 > FirstName </th >
- </thead >
- < tr >
- < td >< divdatafld = Empid ></div ></td > // محتوى جدول الإخراج
- < td >< divDatafld = lastName ></div ></td >
- < td >< divdatafld = firstName ></div ></td >
- </tr >
- </الجدول >
الخطوة 3: بعد ذلك ، أضف زوجًا من عناصر التحكم في زر DTCS للقيام بتنقل بدوره ، أحدهما اسمه BTNPrevious (الصفحة السابقة) والآخر اسمه BTNNEXT (الصفحة التالية). البرامج النصية المقابلة لها على النحو التالي:
- < scriptlanguage = vbscript >
- functionBtnPrevious_onclick ()
- Table1.PreviousPage ()
- الوظيفية
- functionBtnnext_onclick ()
- Table1.NextPage ()
- الوظيفية
- </السيناريو >
النوع الخامس: طريقة DHTML اثنين
هذه الطريقة هي الكمال للطريقة الرابعة. تتيح لنا طريقة البرمجة النصية اليدوية إنشاء الصفحة الرئيسية وأزرار التنقل في الصفحة الرئيسية ، وتحديد موقع كل سجل (رقم السجل). نظرًا للطول ، سأقدم فقط مثالًا محددًا أدناه وأقدم تفسيرًا موجزًا. للحصول على خصائص وطرق أخرى من DHTML وعناصر التحكم في مجموعة السجلات ، يرجى الرجوع إلى الكتب ذات الصلة بنفسك. تجدر الإشارة هنا إلى أن التحكم في مجموعة السجلات يختلف إلى حد ما عن كائن مجموعة سجل ADO المقدمة في الطرق الأولى والثانية: لا يعطي التحكم في مجموعة السجل خصائص مثل Pagesize و PageCount ، ويجب حسابها باستخدام الطريقة المقدمة أدناه.
الخطوة 1: اسحب التحكم في مجموعة السجلات إلى صفحة الويب التي تم إنشاؤها حديثًا EMP5.HTM ، مع اسم Records1 ، وقم بتعيين خصائصها.
الخطوة 2: تحديد ثلاثة متغيرات عالمية واكتب البرنامج النصي onDatAsetComplete من RecordSet1.
- DimgCurrentPagenumber // رقم الصفحة الحالي
- dimgmaxpagenber // الحد الأقصى لعدد الصفحات
- DimGrecordSperPage // عدد السجلات المعروضة لكل صفحة
- GRECORDSPERPAGE = 5 // قم بتعيين عدد السجلات المعروضة لكل صفحة إلى 5 سجلات.
- functionRecordSet1_ondatasetComplete ()
- TotalRecordCount = RecordSet1.getCount () // إجمالي عدد السجلات
- gmaxpagenumber = int (TotalRecordCount/GreCordSperPage) // احصل على أقصى عدد من الصفحات
- إذا (TotalRecordCountModgreCordSperPage) > 0then
- gmaxpagenumber = gmaxpagenumber+1
- Endif
- الوظيفية
الخطوة 3: قم بإنشاء زر بدوره بدوره التنقل.
- functionBtnfirst_onclick () 'flip إلى الصفحة الرئيسية
- GcurrentPagenumber = 1
- DisplayData ()
- الوظيفية
- functionBtnPrevious_onclick () 'Flip إلى الصفحة السابقة
- IfgCurrentPagenumber> 1th
- gcurrentPagenumber = gcurrentpagenbramber-1
- DisplayData ()
- Endif
- الوظيفية
- functionBtnnext_onclick () 'flip إلى الصفحة التالية
- IfgCurrentPagenumber < Gmaxpagenumberthen
- gcurrentPagenumber = gcurrentPagenumber+1
- DisplayData ()
- Endif
- الوظيفية
- functionBtnlast_onclick () 'Flip إلى الصفحة الأخيرة
- gcurrentPagenumber = gmaxpagenber
- DisplayData ()
- الوظيفية
الخطوة 4: اكتب وظيفة تعرض كل صفحة. يتم استخدام العديد من خصائص وطرق DHTML ، يرجى الرجوع إلى الكتب ذات الصلة بنفسك.
- subdisplaydata ()
- startrecord = ((gcurrentPagenumber-1)*greCordSperPage)+1 // احسب عدد السجلات المعروضة في بداية كل صفحة (الموضع ، أي عنصر)
- rowctr = 1
- lblpagenumber.innerhtml = gcurrentPagenumber &/& gmaxpagenumber
- forrecordptr = startrecordto (startrecord+grecordsperpage-1) // ركوب الدراجات لعرض كل سجل على صفحة
- ifrecordptr > RecordSet1.getCount () ثم // إظهار الجدول الفارغ
- Table1.Rows (Rowctr) .Cells (0) .innerhtml = < p ></p >
- Table1.Rows (Rowctr) .Cells (1) .innerhtml = < p ></p >
- Table1.Rows (Rowctr) .Cells (2) .innerhtml = < p ></p >
- Table1.Rows (Rowctr) .Cells (3) .innerhtml = < p ></p >
- آخر // حدد كل صفحة
- RecordSet1.moveabsolute (RecordPtr) // حرك مؤشر السجل.
- Empid = recordset1.fields.getValue (Empid)
- emplname = recordset1.fields.getValue (FirstName)
- empfname = recordset1.fields.getValue (اسمه)
- Table1.Rows (Rowctr) .Cells (0) .innertext = recordPtr'counter
- Table1.Rows (Rowctr) .Cells (1) .innertext = Empid
- Table1.Rows (Rowctr) .Cells (2) .innertext = emplname
- Table1.Rows (rowctr) .Cells (3) .innertext = empfname
- Endif
- ROWCTR = ROWCTR+1
- التالي
- ينتهي
بالإضافة إلى ذلك ، نحتاج أيضًا إلى كتابة البرنامج النصي التالي في حدث Onload لكائن النافذة:
- forrowctr = 1ToGrecordSperPage
- Table1.InserTrow (ROWCTR) "أدخل عمودًا جديدًا
- forcellctr = 0to3
- Table1.Rows (ROWCTR) .insertcell ()
- التالي
- التالي
الطريقة السادسة: دوران تحكم من جانب الخادم.
إذا قمنا بتثبيت البيانات الموجودة على الخادم ثم إخراجها إلى العميل ، فلن تكون هناك مشكلة في أن المتصفح لا يدعم DHTML. ومع ذلك ، فإن استخدام طريقة جانب الخادم يجعلنا يتعين علينا تجديد التحكم في مجموعة السجلات في كل مرة نقوم فيها بتشغيل الصفحة ، وبالتالي فإن السرعة أبطأ بالتأكيد من استخدام طريقة DHTML. ولكن إذا كان الخادم سريعًا بما فيه الكفاية ، فلن يلاحظ بطء العميل.
في المثال التالي ، سأقدم عنصر تحكم DTC جديد: PageObject. يجعل هذا التحكم صفحة الويب المحددة كائنًا ، ويمكن اعتبار الروتين الفرعي والوظائف التي ينظمها المستخدم في البرنامج النصي الخادم لصفحة الويب كطرق لكائن صفحة الويب. يوفر طريقة متقدمة لإدارة معلومات الحالة: تحتوي كائنات الويب على بعض الخصائص (المتغيرات) التي يمكن للمستخدمين تحديد عمر هذه الخصائص. بسبب الميزات المذكورة أعلاه ، فإنه يجعل من المريح للغاية تجميع البرامج النصية لتحويل الصفحات.
ولكن عيب هذه الطريقة هو: عندما تضغط على الصفحة السابقة أو زر الصفحة التالية ، ثم اضغط على زر التحديث في المتصفح ، ستقوم صفحة الويب تلقائيًا بتشغيل الصفحات. بالإضافة إلى ذلك ، إذا ضغطت على زر التراجع الموجود على المتصفح ثم اضغط على زر تشغيل الصفحة ، فيمكنك تشغيله بشكل عشوائي. كل هذا ناتج عن خصائص كائن الويب (المتغيرات العالمية).
الخطوة 1: اسحب التحكم في مجموعة السجلات إلى صفحة الويب التي تم إنشاؤها حديثًا EMP6.asp ، مع اسم Records1 ، وقم بتعيين خصائصها.
الخطوة 2: اسحب التحكم في PageObject إلى صفحة الويب وتسمية emplist. ثم انقر بزر الماوس الأيمن فوق هذا التحكم لفتح صفحة الممتلكات وتعيين ثلاث خصائص (المتغيرات العالمية) من MaxPagenumber و RecordsPerpage و CurrentPagenbrumber. يمكن لـ VI6.0 استخدام أساليب GET وتعيينها لقراءة وكتابة قيمها.
الخطوة 3: اكتب حدث OnDatasetComplete من RecordSet1.
- functionRecordSet1_ondatasetComplete ()
- RecorderPage = 5
- emplist.setRecordSperPage (RecordsperPage) // قم بتعيين رقم سجل كائن صفحة الويب لكل سمة صفحة إلى 5
- TotalRecordCount = recordset1.getCount () // احصل على العدد الإجمالي لمجموعات السجلات
- MPN = int (TotalRecordCount/RecordsperPage) // احسب MPN كإجمالي عدد الصفحات
- إذا (TotalRecordCountModRecordSperPage) > 0then
- MPN = MPN+1
- Endif
- emplist.setmaxpagenumber (MPN)
- الوظيفية
الخطوة 4: اسحب أربعة عناصر تحكم الزر في صفحة الويب واكتب صفحة التحكم في الصفحة. ندرك بشكل أساسي تشغيل الصفحة بدوره عن طريق تغيير قيمة خاصية CurrentPagenumber لكائن صفحة الويب.
- functionBtnfirst_onclick () 'flip إلى الصفحة الرئيسية
- emplist.setCurrentPagenumber (1)
- الوظيفية
- functionBtnPrevious_onclick () 'Flip إلى الصفحة السابقة
- CPN = emplist.getCurrentPagenumber ()
- IFCPN > 1th
- emplist.setCurrentPagenumber (CPN-1)
- Endif
- الوظيفية
- functionBtnnext_onclick () 'flip إلى الصفحة التالية
- CPN = emplist.getCurrentPagenumber ()
- IFCPN < emplist.getMaxPagenumber () ثم
- emplist.setCurrentPagenumber (CPN+1)
- Endif
- الوظيفية
- functionBtnlast_onclick () 'Flip إلى الصفحة الأخيرة
- emplist.setCurrentPagenumber (emplist.getmaxpagenumber ())
- الوظيفية
للتأكد من عرض الصفحة الأولى عند إدخال الصفحة لأول مرة ، يتعين علينا كتابة حدث OnEnter لكائن صفحة الويب.
- FunctionEmplist_onenter ()
- ifemplist.firstenterdthen
- emplist.setCurrentPagenumber (1)
- Endif
- الوظيفية
- الخطوة 5: اكتب نصًا يعرض كل صفحة.
- < hr >< tableborder = 0 >< tr > // عرض الرأس
- < thalign = LeftWidth = 35 ></th >
- < thalign = LeftWidth = 150 > Empid </th >
- < thalign = LeftWidth = 200 > اسم LastName </th >
- < thalign = LeftWidth = 200 > FirstName </th ></tr >
- < ٪
- Pagenumber = emplist.getCurrentPagenumber () // حساب المعلمات المختلفة المطلوبة لدوران الصفحة ، مثل طريقة DHTML اثنين
- RecordsperPage = emplist.getRecordSperPage ()
- StarTrecord = ((Pagenumber-1)*RecordSperPage) +1
- lastRecord = recordset1.getCount ()
- forrecordptr = startrecordto (StarTrecord+Recordpage-1) ٪ >
- < ٪ ifrecordset1.eof = truethen ٪ >
- < tr >
- < td ></td >
- < td ></td >
- < td ></td >
- < td ></td >
- </tr >
- < ٪ آخر ٪ >
- < ٪ RecordSet1.moveabsolute (RecordPtr) ٪ >
- < tr >
- < ٪ ifrecordptr < = lastrecordthen ٪ >
- < td >< ٪ = RecordPtr ٪ ></td >
- < ٪ آخر ٪ >
- < td ></td >
- < ٪ endif ٪ >
- < td >< ٪ = recordset1.fields.getValue (Empid) ٪ ></td >
- < td >< ٪ = recordset1.fields.getValue (lastName) ٪ ></td >
- < td >< ٪ = recordset1.fields.getValue (firstName) ٪ ></td >
- </tr >
- < ٪ endif ٪ >
- < ٪ التالي ٪ >
- </الجدول >< HR >
النوع السابع: طريقة نموذج كائن بيئة البيانات
يقوم نموذج كائن بيئة البيانات بتجريد نموذج كائن ADO وكائناته - الاتصال والأمر وسجل مجموعة الكائنات والحقل والمعلمة - في نموذج أسهل. يكشف نموذج كائن بيئة البيانات عن الأوامر كطرق. يمكن للمستخدم استدعاء هذه الأساليب ، والتي تنفذ هذه الأوامر وإرجاع مجموعة السجلات الناتجة. للحصول على معلومات مفصلة عن نموذج كائن DEOM ، يرجى الرجوع إلى الكتب ذات الصلة. لنلقي نظرة على المثال التالي لـ EMP7.asp:
الخطوة 1: انقر بزر الماوس الأيمن على الماوس في المشروع في نافذة Explorer Project of VI6.0 وحدد إضافة اتصال البيانات من القائمة المنبثقة. بعد إنشاء اتصال بقاعدة البيانات وفقًا لمطالبات التنقل المقدمة من السادس ، يضيف المستخدم أمر بيانات للوصول إلى قاعدة البيانات من تطبيق ASP. في الوقت نفسه ، سترى كائن بيئة بيانات ضمن ملف Global.ASA في نافذة Explorer Project.
الخطوة 2: انقر بزر الماوس الأيمن فوق كائن بيئة البيانات وحدد خيار Add Data Command من القائمة المنبثقة لإضافة أمر بيانات 1. وفقًا لمطالبات التنقل في VI6.0 ، يمكنك تحديد عبارة SQL في صفحة الوراثة في نافذة Protect Properties Command1 وإدخالها: SELECT * من EMP. اضغط على موافق للعودة.
الخطوة 3: بعد إنشاء أمر البيانات هذا ، قمت بإنشاء طريقة لكائن بيئة البيانات ، وبعد ذلك يمكنك استدعاء هذه الطريقة من البرنامج النصي ، وستقوم الطريقة بإرجاع سجل محدد إلى المستخدم.
هذا page.createde () // في وضع SOM ، تمثل هذه الحالة كائن صفحة الويب الحالي ، وطريقة Createde () تنشئ كائن DE.
De.Command1 // قم بتنفيذ أمر الكائن DE ، والذي يمكن استخدامه كمعلمة لاحقًا ، وهو أمر مفيد جدًا عند القيام باستعلامات مشروطة.
تعيين rs = de.rscommand1 // de.rscommand1 يجعل كائن RS مكافئًا تمامًا لكائن سجل ADO.
الخطوة 4: نظرًا لأن RS هو كائن ADO ، فإن رمز تشغيل صفحة التنفيذ التالية يشير تمامًا إلى الأساليب المقدمة أعلاه ، ويتم تخطيها هنا.
لا ترتبط طرق أخرى مثل تلك التي تم تنفيذها في التنقل في قاعدة البيانات في ProntPage2000 بهذا الموضوع ، لذلك تم حذفه هنا.
خلاصة القول ، تحتوي كل طريقة تم تقديمها أعلاه على العديد من التقنيات الجديدة ، والتي لا يمكن اختراقها بسبب الطول. هذه المقالة تريد فقط تقديم طرق مختلفة لبرمجة ASP من خلال مثال محدد من تحول الصفحة ؛ برمجة الصفحة ؛