لقد قمت بكتابة سبعة دروس أساسية،
وهي واحدة من سلسلة الإدخال المتوسط وإتقان مكونات Asp
. هناك بالتأكيد بعض الأشياء الأساسية التي يجب كتابتها، وسأكملمحتوى الدروس المتوسطة ببطء:
قد يكون هذا أيضًا ما يفعله الجميع الأكثر اهتمامًا بـ: مثل: تشغيل قاعدة البيانات وتعبئتها. استخدام كائنات Asp المضمنة. سأقضي وقتًا طويلاً في شرح هذه الأجزاء. يتطلب هذا الجزء منك أن تكون أكثر كفاءة في استخدام ADO لتشغيل قاعدة البيانات وأن تكون على دراية بالكائنات الخمسة الرئيسية لـ ASP.
دعونا نلقي نظرة على بعض المعلومات المتداولة عبر الإنترنت:
كما نعلم جميعًا، يحتوي ASP على خمسة كائنات مضمنة: الاستجابة والطلب والخادم والجلسة والتطبيق. في الواقع، هذه الكائنات الخمسة المضمنة هي مكونات ActiveX DLL الخمسة التي تمت تهيئتها بواسطة وحدة تحكم IIS خمسة مكونات للاستخدام في ASP، بالطبع، يمكننا أيضًا الرجوع مباشرة إلى هذه المكونات في ActiveX DLL الخاص بنا لتنفيذ برمجتنا، مما يعني أنه يمكننا تحقيق وظيفة الوصول إلى كائنات ASP المضمنة من خلال الرجوع إلى هذه المكونات في تطبيقات VB.
طالما قمت بتثبيت خادم ويب مع PWS4 أو IIS4 أو أعلى، سيكون لديك مكتبة كائنات تسمى "كائن صفحات الخادم النشطة لـ Microsoft". يمكننا الرجوع إلى مكتبة الكائنات هذه في تطبيق ActiveX DLL الخاص بـ VB، بالرجوع إلى مكتبة الكائنات هذه تم الحصول على كائن (فئة): ScriptingContext، وهو أيضًا الكائن الأساسي لمقالتنا بأكملها. العلاقة داخل مكتبة الكائنات هي كما يلي:
عضو فئة مكتبة الكائنات
ASPTypeLibrary ScriptingContext
طلب
استجابة
خادم
الجلسة
من خلال مخطط العلاقة أعلاه، يمكننا بسهولة فهم فئة ScriptingContent.
دعونا نلقي نظرة على مثال محدد:
افتح vb6 وقم بإنشاء مشروع Activex Dll جديد. قم بتغيير اسم المشروع إلى fCom واسم الفئة إلى fZ1
مرجع إلى مكتبة الكائنات "Microsoft Active Server Pages Object".
قم بإنشاء حدثين مكونين: OnStartPage وOnEndPage
قم بإنشاء مرجع لفئة ScriptingContent في الحدث OnStartPage.
إنشاء مثيل للمحتوى ScriptingContent.
الكود هو كما يلي:
كود البرنامج
الخيار صريح
"إعلان الكائن."
تعتيم myResponse كرد
تعتيم myRequest حسب الطلب
تعتيم myApplication كتطبيق
خافت myServer كخادم
تعتيم mySession كجلسة
'سيتم تشغيل هذا الحدث عند إنشاء المكون
OnStartPage الفرعي العام (myScriptingContent As ScriptingContext)
'تنفيذ إنشاء كائن
قم بتعيين myResponse = myScriptingContent.Response
قم بتعيين myRequest = myScriptingContent.Request
قم بتعيين myServer = myScriptingContent.Server
قم بتعيين myApplication = myScriptingContent.Application
اضبط mySession = myScriptingContent.Session
myResponse.Write "تم إنشاء مكون ActiveX DLL!"
End Sub
'يتم تشغيل هذا الحدث عند تدمير المكون
OnEndPage العامة الفرعية ()
myResponse.Write "تم إتلاف مكون ActiveX DLL!"
'تدمير الكائن
اضبط myResponse = لا شيء
تعيين طلبي = لا شيء
تعيين myServer = لا شيء
تعيين myApplication = لا شيء
اضبط mySession = لا شيء
End Sub
'حدد طريقة مكونة خاصة بنا
HelloWorld الفرعية العامة ()
myResponse.Write "تم كتابة هذا باستخدام كائنات asp المضمنة"
نهاية الفرعية
قم باختبار برنامج interdev6.0 المرئي المفتوح وقم بإنشاء ملف asp
رمز البرنامج
<%@ اللغة=VBScript %>
<أتش تي أم أل>
<الجسم>
<%
تعيين obj=server.CreateObject("fCom.fZ1")
استدعاء obj.HelloWorld()
%>
</الجسم>
</HTML>
قم بتكوين الدليل الظاهري وتنفيذ ملف asp هذا في IE، وكانت النتائج كما يلي:
تم إنشاء مكون ActiveX DLL! تم تدمير مكون ActiveX DLL المكتوب باستخدام كائنات asp المضمنة!
لنلق نظرة أولاً على كائن التطبيق في كثير من الأحيان
للعدادات
وقواعد البيانات، بالنسبة لسلسلة الاتصال، نأخذ العداد كمثال:
دعونا نلقي نظرة على ملف global.asa أولاً. هذا أمر بسيط نسبياً.
رمز البرنامج
<لغة البرنامج النصي =vbscript runat=server>
subApplication_onstart
التطبيق ("العداد") = 0
النهاية الفرعية
</script>
ثم
افتح vb6 وقم بإنشاء مشروع Activex Dll جديد. تم تغيير اسم المشروع إلى fCom وتغيير اسم الفئة إلى fZ2
مرجع إلى مكتبة الكائنات "Microsoft Active Server Pages Object".
قم بإنشاء حدثين مكونين: OnStartPage وOnEndPage
قم بإنشاء مرجع لفئة ScriptingContent في الحدث OnStartPage.
إنشاء مثيل للمحتوى ScriptingContent.
الكود هو كما يلي:
كود البرنامج
الخيار صريح
"إعلان الكائن."
تعتيم myResponse كرد
تعتيم myRequest حسب الطلب
تعتيم myApplication كتطبيق
خافت myServer كخادم
تعتيم mySession كجلسة
'سيتم تشغيل هذا الحدث عند إنشاء المكون
OnStartPage الفرعي العام (myScriptingContent As ScriptingContext)
'تنفيذ إنشاء كائن
قم بتعيين myResponse = myScriptingContent.Response
قم بتعيين myRequest = myScriptingContent.Request
قم بتعيين myServer = myScriptingContent.Server
قم بتعيين myApplication = myScriptingContent.Application
اضبط mySession = myScriptingContent.Session
نهاية الفرعية
'يتم تشغيل هذا الحدث عندما يتم تدمير المكون
OnEndPage العامة الفرعية ()
'تدمير الكائن
اضبط myResponse = لا شيء
تعيين طلبي = لا شيء
تعيين myServer = لا شيء
تعيين myApplication = لا شيء
اضبط mySession = لا شيء
نهاية الفرعية
'يمكنك أن ترى أن طريقة الكتابة هي نفسها بعد نقل ما تم كتابته في asp إلى vb.
عداد العرض الفرعي العام ()
خافت intcounter طالما
myApplication.Lock
intcounter = myApplication("العداد")
إينتكونتر = إينتكونتر + 1
myApplication("counter") = intcounter
myApplication.UnLock
myResponse.Write CStr(intcounter)
نهاية الفرعية
قم باختبار
برنامج interdev6.0 المرئي المفتوح وقم بإنشاء ملف asp
رمز البرنامج
<%@ اللغة=VBScript %>
<أتش تي أم أل>
<الجسم>
<%
كائن خافت
تعيين obj=server.CreateObject("fCom.fZ2")
obj.ShowCounter()
%>
</الجسم>
</HTML>
بعد تكوين الدليل الظاهري، تحتاج إلى وضع ملف global.asa في الدليل الجذر، وتنفيذ ملف asp هذا في IE، وتحديث الصفحة، وسترى رقمًا متغيرًا.
هذا كل شيء لاستخدام التطبيق.
مستوى الإدخال المتوسط لمكون Asp وسلسلة الإتقان الثالثة،
فإن الجلسة أسهل بكثير
. افتح vb6 وأنشئ مشروع Activex Dll جديد. قم بتغيير اسم المشروع إلى fCom واسم الفئة إلى fZ3
مرجع إلى مكتبة الكائنات "Microsoft Active Server Pages Object".
قم بإنشاء حدثين مكونين: OnStartPage وOnEndPage
قم بإنشاء مرجع لفئة ScriptingContent في الحدث OnStartPage.
إنشاء مثيل للمحتوى ScriptingContent.
الرمز هو كما يلي:
رمز البرنامج
الخيار صريح
"إعلان الكائن."
تعتيم myResponse كرد
تعتيم myRequest حسب الطلب
تعتيم myApplication كتطبيق
خافت myServer كخادم
تعتيم mySession كجلسة
'سيتم تشغيل هذا الحدث عند إنشاء المكون
OnStartPage الفرعي العام (myScriptingContent As ScriptingContext)
'تنفيذ إنشاء كائن
قم بتعيين myResponse = myScriptingContent.Response
قم بتعيين myRequest = myScriptingContent.Request
قم بتعيين myServer = myScriptingContent.Server
قم بتعيين myApplication = myScriptingContent.Application
اضبط mySession = myScriptingContent.Session
End Sub
'يتم تشغيل هذا الحدث عند تدمير المكون
OnEndPage العامة الفرعية ()
'تدمير الكائن
اضبط myResponse = لا شيء
تعيين طلبي = لا شيء
تعيين myServer = لا شيء
تعيين myApplication = لا شيء
اضبط mySession = لا شيء
نهاية الفرعية
'يمكنك أن ترى أن طريقة الكتابة هي نفسها بعد نقل ما تم كتابته في asp إلى vb.
"احصل على كافة متغيرات وقيم الجلسة."
جلسة العرض الفرعية العامة ()
"يمكنك ضبط مهلة مدتها 20 دقيقة."
mySession.Timeout = 20
خافت myitem
"احصل على جميع الجلسات."
لكل عنصر في mySession.Contents
myResponse.Write myitem & ": " & mySession.Contents(myitem)
myResponse.اكتب "<br>"
التالي
نهاية الفرعية
اختبار
فتح interdev6.0 المرئي، وإنشاء ملف asp لتكوين الدليل الظاهري، وتنفيذ ملف asp هذا في IE، ويمكنك رؤية
الاسم: tornado
العمر: 26
التخصص:
هذا كل ما يتعلق باستخدام الجلسة المكونة. الاستخدامات الأخرى للجلسة متشابهة.
Asp مكون الإدخال المتوسط وسلسلة الإتقان الرابعة،
نتعلم الطلب
لمعرفة كيفية الحصول على المحتوى الذي ترسله الصفحة في المكون
، افتح vb6 وقم بإنشاء مشروع Activex Dll جديد. تم تغيير اسم المشروع إلى fCom وتغيير اسم الفئة إلى fZ4
مرجع إلى مكتبة الكائنات "Microsoft Active Server Pages Object".
قم بإنشاء حدثين مكونين: OnStartPage وOnEndPage
قم بإنشاء مرجع لفئة ScriptingContent في الحدث OnStartPage.
إنشاء مثيل للمحتوى ScriptingContent.
الكود هو كما يلي:
كود البرنامج
الخيار صريح
"إعلان الكائن."
تعتيم myResponse كرد
تعتيم myRequest حسب الطلب
تعتيم myApplication كتطبيق
خافت myServer كخادم
تعتيم mySession كجلسة
'سيتم تشغيل هذا الحدث عند إنشاء المكون
OnStartPage الفرعي العام (myScriptingContent As ScriptingContext)
'تنفيذ إنشاء كائن
قم بتعيين myResponse = myScriptingContent.Response
قم بتعيين myRequest = myScriptingContent.Request
قم بتعيين myServer = myScriptingContent.Server
قم بتعيين myApplication = myScriptingContent.Application
اضبط mySession = myScriptingContent.Session
End Sub
'يتم تشغيل هذا الحدث عند تدمير المكون
OnEndPage العامة الفرعية ()
'تدمير الكائن
اضبط myResponse = لا شيء
تعيين طلبي = لا شيء
تعيين myServer = لا شيء
تعيين myApplication = لا شيء
اضبط mySession = لا شيء
End Sub
'يمكنك أن ترى أن طريقة الكتابة هي نفسها بعد نقل ما تم كتابته في asp إلى vb.
طلب العرض الفرعي العام ()
خافت myitem
"طريقة النشر."
لكل عنصر في myRequest.Form
myResponse.اكتب myitem & ": " & myRequest.Form(myitem)
myResponse.اكتب "<br>"
التالي
"احصل على الطريقة."
لكل عنصر myitem في myRequest.QueryString
myResponse.Write myitem & ": " & myRequest.QueryString(myitem)
myResponse.اكتب "<br>"
التالي
"رسالة واحدة."
myResponse.Write "إحدى الرسائل هي " & ": & myRequest("اسم المستخدم")
myResponse.اكتب "<br>"
نهاية الفرعية
قم باختبار
برنامج interdev6.0 المرئي المفتوح وقم بإنشاء
رمز برنامج
ملف fz41.asp
<%@ اللغة=VBScript %>
<أتش تي أم أل>
<الجسم>
<طريقة الإجراء = "fz4_result.asp" = "post">
<معرف الإدخال=اسم النص1=اسم المستخدم>
<معرف الإدخال = اسم النص 2 = العمر>
<معرف الإدخال = نوع الإرسال 1 = قيمة الإرسال = اسم الإرسال = إرسال>
</النموذج>
</الجسم>
</HTML>
تحتاج أيضًا إلى إنشاء
رمز برنامج
الملف fz4_result.asp المُرسل
<%@ اللغة=VBScript %>
<أتش تي أم أل>
<الجسم>
<%
كائن خافت
تعيين obj=server.CreateObject("fCom.fZ4")
استدعاء obj.ShowRequest
%>
</الجسم>
</HTML>
بالإضافة إلى ذلك، نحتاج أيضًا إلى إلقاء نظرة على طريقة الإرسال، لذلك نحتاج إلى
رمز برنامج
ملف fz42.asp
<%@ اللغة=VBScript %>
<أتش تي أم أل>
<الجسم>
<form action="fz4_result.asp?username='"& اسم المستخدم &"'& العمر='"& العمر &"'"method="get" id=form1 name=form1>
<معرف الإدخال=اسم النص1=اسم المستخدم>
<معرف الإدخال = اسم النص 2 = العمر>
<معرف الإدخال = نوع الإرسال 1 = قيمة الإرسال = اسم الإرسال = إرسال>
</النموذج>
</الجسم>
</HTML>
قم بتكوين الدليل الظاهري وتنفيذ ملف fc41.asp في IE. بعد إدخال المحتوى، انقر فوق الزر وسترى
اسم المستخدم: Tornado
العمر: 26
أرسل: أرسل
إحدى الرسائل هي: Tornado.
لننفذ ملف fc42.asp في IE. بعد إدخال المحتوى، انقر فوق الزر ويمكنك رؤية
اسم المستخدم: Tornado.
العمر: 26
أرسل: أرسل
إحدى الرسائل هي: تورنادو
ويصبح شريط العناوين
http://yang/xml/fz4_result.asp?username=%C1%FA%BE%ED%B7%E7&age=26&%CC%E1%BD%BB=Submit
يتبع للمتابعة
سلسلة الإدخال المتوسط وإتقان مكون Asp الجزء 5
دعونا نلقي نظرة على كائن الاستجابة. في الواقع، لقد كنا نستخدم طريقة الكتابة لهذا الكائن في البرامج التعليمية السابقة.
هنا نستخدم كائن الاستجابة لتعيين ملفات تعريف الارتباط.
افتح الإصدار vb6 وقم بإنشاء مشروع Activex Dll جديد. قم بتغيير اسم المشروع إلى fCom واسم الفئة إلى fZ5
مرجع إلى مكتبة الكائنات "Microsoft Active Server Pages Object".
قم بإنشاء حدثين مكونين: OnStartPage وOnEndPage
قم بإنشاء مرجع لفئة ScriptingContent في الحدث OnStartPage.
إنشاء مثيل للمحتوى ScriptingContent.
الكود هو كما يلي:
كود البرنامج
الخيار صريح
"إعلان الكائن."
تعتيم myResponse كرد
تعتيم myRequest حسب الطلب
تعتيم myApplication كتطبيق
خافت myServer كخادم
Dim mySession As Session
'سيتم تشغيل هذا الحدث عند إنشاء المكون
OnStartPage الفرعي العام (myScriptingContent As ScriptingContext)
'تنفيذ إنشاء كائن
قم بتعيين myResponse = myScriptingContent.Response
قم بتعيين myRequest = myScriptingContent.Request
قم بتعيين myServer = myScriptingContent.Server
قم بتعيين myApplication = myScriptingContent.Application
اضبط mySession = myScriptingContent.Session
End Sub
'يتم تشغيل هذا الحدث عند تدمير المكون
OnEndPage العامة الفرعية ()
'تدمير الكائن
اضبط myResponse = لا شيء
تعيين طلبي = لا شيء
تعيين myServer = لا شيء
تعيين myApplication = لا شيء
اضبط mySession = لا شيء
End Sub
"قم بتعيين ملفات تعريف الارتباط من الصفحة واحصل عليها من المكون."
GetCookie الفرعي العام ()
خافت myitem
'جميع المعلومات
لكل عنصر من العناصر الموجودة في myRequest.Cookies
myResponse.Write myitem & ": " & myRequest.Cookies.Item(myitem)
myResponse.اكتب "<br>"
التالي
"رسالة واحدة."
myResponse.Write "حيث يكون اسم المستخدم " & ": & myRequest.Cookies("اسم المستخدم")
myResponse.اكتب "<br>"
myResponse.Write "حيث يكون عمر المستخدم" & ": & myRequest.Cookies("age")
myResponse.اكتب "<br>"
End Sub
"قم بتعيين ملفات تعريف الارتباط في المكون واحصل عليها في الصفحة."
ملف تعريف الارتباط الفرعي العام ()
myResponse.Cookies("com_username") = "إعصار"
myResponse.Cookies("com_age") = 26
myResponse.Expires = #9/13/2004#
نهاية الفرعية
قم بتجميعه في ملف Dll وسيقوم النظام بتسجيله تلقائيًا.
بخلاف ذلك، قم بتسجيل Regsvr32 يدويًا f:testfcom.dll
لاختبار
interdev6.0 المرئي المفتوح، وإنشاء ملف fz5.asp
وتكوين الدليل الظاهري، وتنفيذ ملف fc5.asp في IE، ويمكنك رؤية
الإعصار
26
العمر: 26
اسم المستخدم: تورنادو
كوم_العمر: 26
com_username: Tornado حيث يكون اسم المستخدم: Tornado حيث يكون عمر المستخدم: 26
يتبع
مقدمة وسيطة وإتقان سلسلة مكونات Asp رقم 6
ككائن مدمج في Asp، نتعرف أخيرًا على كائن
الخادم يستخدم الكائن المزيد من ترميز URL بتنسيق Html وإعادة توجيه صفحة الويب ونقلها.
افتح الإصدار vb6 وقم بإنشاء مشروع Activex Dll جديد. تم تغيير اسم المشروع إلى fCom وتغيير اسم الفئة إلى fZ6
مرجع إلى مكتبة الكائنات "Microsoft Active Server Pages Object".
قم بإنشاء حدثين مكونين: OnStartPage وOnEndPage
قم بإنشاء مرجع لفئة ScriptingContent في الحدث OnStartPage.
إنشاء مثيل للمحتوى ScriptingContent.
الكود هو كما يلي:
كود البرنامج
الخيار صريح
"إعلان الكائن."
تعتيم myResponse كرد
تعتيم myRequest حسب الطلب
تعتيم myApplication كتطبيق
خافت myServer كخادم
Dim mySession As Session
'سيتم تشغيل هذا الحدث عند إنشاء المكون
OnStartPage الفرعي العام (myScriptingContent As ScriptingContext)
'تنفيذ إنشاء كائن
قم بتعيين myResponse = myScriptingContent.Response
قم بتعيين myRequest = myScriptingContent.Request
قم بتعيين myServer = myScriptingContent.Server
قم بتعيين myApplication = myScriptingContent.Application
اضبط mySession = myScriptingContent.Session
End Sub
'يتم تشغيل هذا الحدث عند تدمير المكون
OnEndPage العامة الفرعية ()
'تدمير الكائن
اضبط myResponse = لا شيء
تعيين طلبي = لا شيء
تعيين myServer = لا شيء
تعيين myApplication = لا شيء
اضبط mySession = لا شيء
End Sub
Public Sub ShowHtml(ByVal strHtml كسلسلة)
myResponse.Write myServer.HTMLEncode(strHtml)
End Sub
Public Sub ShowUrl (ByVal strUrl كسلسلة)
myResponse.Write myServer.URLEncode(strUrl)
نهاية فرعية
عامة فرعية ExecuteUrl()
myServer.Transfer "fz5.asp"
نهاية الفرعية
قم بتجميعه في ملف Dll وسيقوم النظام بتسجيله تلقائيًا.
بخلاف ذلك، قم بتسجيل Regsvr32 f:testfcom.dll يدويًا
لاختبار
interdev6.0 المرئي، وإنشاء ملف fz6.asp
وتكوين الدليل الظاهري،ثم
قم بتنفيذ ملف fc6.asp في IE لرؤيته
.
C1 %FA%BE%ED%B7%E7&age=26
يمكنك استخدام IE لعرض الملف المصدر لعرض ترميز HTML،
وهذه مقدمة مؤقتة للكائنات المضمنة في ASP، وسنواصل دراستها لاحقًا.
يمكنك أيضًا استخلاص استنتاجات من مثال واحد ومعرفة الخصائص والأساليب التي لم يتم تقديمها بعد.
يبدأالإدخال المتوسط لمكونات Asp وسلسلة الإتقان السابعة
عمليات قاعدة البيانات.
تعبئة المكونات المشتركة
1. قم بتغليف معلومات اتصال قاعدة البيانات.
1> قم بإرجاع سلسلة اتصال قاعدة البيانات مباشرة، مثل
رمز البرنامج
الموجود في المكون
مصدر بيانات الوظيفة العامة () كمتغير
مصدر البيانات = "برنامج التشغيل = {خادم SQL}؛ الخادم = يانغ؛ uid = sa؛ pwd =؛ قاعدة البيانات = northwind"
وظيفة النهاية
رمز برنامج
الاتصال asp
تعيين obj=server.CreateObject("webdb.getinfo")
oconn=obj.datasource()
واضحة. في ملف asp، يمكن للاستجابة مباشرة لـ oconn عرض سلسلة اتصال قاعدة البيانات، والتي ليس لها التأثير المتوقع.
2> قم بإرجاعرمز برنامج
كائن adodb.connection
الوظيفة العامة GetConn() كـ ADODB.Connection
تعيين conn = ADODB.Connection جديد
conn.ConnectionString = "الموفر=SQLOLEDB.1;معلومات الأمان المستمرة=خطأ;معرف المستخدم=sa;كلمة المرور=;الكتالوج الأولي=Northwind;مصدر البيانات=yang"
conn.Open
تعيين GetConn = conn
وظيفة النهاية
رمز برنامج
الاتصال Asp
خافت DataQuery
تعيين DataQuery=Server.CreateObject("WebDbtest.GetInfomation")
مجموعة rs=server.createobject("adodb.recordset")
sql="اختر * من الموظفين"
Rs.open sql,DataQuery.getconn,1,3
استجابة.اكتب Rs("اسم العائلة")
Response.write DataQuery.getconn.ConnectionString
set Rs=لا شيء
يبدو جيدًا، لكن Response.write DataQuery.getconn.ConnectionString سيظل يعرض سلسلة اتصال قاعدة البيانات، ويمكنك اختبارها.
2. لتغليف المكونات في مجموعة سجلات، يمكنك قراءة ما كتبته منذ بعض الوقت : http://blog.csdn.net/online/archive/2003/12/11/7764.aspx
الشيء السيئ في هذا الرمز هو أنه يتم الحكم على اتصال قاعدة البيانات على الصفحة، وبعد نجاح الاتصال، يتم الوصول إلى البيانات. شخصيًا، أعتقد أن أفضل طريقة هي
تغليفها في مجموعة سجلات والاتصال بقاعدة البيانات بعد اكتمال العملية، أغلقها في
الوقت المناسب وحاول إنشاء كود HTML في المكون لتغليف كل شيء. مثل الطريقة التالية
بدلاً من التغليف الجزئي.
لقد كانتسلسلة الإدخال والإتقان المتوسطة لمكونات Asp رقم 8
مشغولة جدًا خلال هذه الفترة. اليوم سنلقي نظرة على مثال كامل لتغليف البيانات وترحيل الصفحات،
افتح vb6 وقم بإنشاء مشروع Activex Dll جديد. تم تغيير اسم المشروع إلى fCom وتغيير اسم الفئة إلى fZ8
مرجع إلى مكتبة كائنات "Microsoft Active Server Pages Object" و"Microsoft Activex Data Object 2.7 Library".
قم بإنشاء حدثين مكونين: OnStartPage وOnEndPage
قم بإنشاء مرجع لفئة ScriptingContent في الحدث OnStartPage.
إنشاء مثيل للمحتوى ScriptingContent.
الكود هو كما يلي:
كود البرنامج
الخيار صريح
'********************************************************************************************************************************************************************************* *
"المؤلف: تورنادو
'الوظيفة: مكون بسيط وقابل للتخصيص ومغلف بالكامل
'الوقت:2005-01-01
'********************************************************************************************************************************************************************************* *
"إعلان الكائن."
تعتيم MyResponse كرد
تعتيم MyRequest حسب الطلب
تعتيم myApplication كتطبيق
خافت myServer كخادم
تعتيم mySession كجلسة
"متغيرات خاصة".
mPageSize الخاص طالما
mstrSql الخاص كسلسلة
'سيتم تشغيل هذا الحدث عند إنشاء المكون
OnStartPage الفرعي العام (myScriptingContent As ScriptingContext)
'تنفيذ إنشاء كائن
قم بتعيين MyResponse = myScriptingContent.Response
قم بتعيين MyRequest = myScriptingContent.Request
قم بتعيين myServer = myScriptingContent.Server
قم بتعيين myApplication = myScriptingContent.Application
اضبط mySession = myScriptingContent.Session
End Sub
'يتم تشغيل هذا الحدث عند تدمير المكون
OnEndPage العامة الفرعية ()
'تدمير الكائن
اضبط MyResponse = لا شيء
تعيين MyRequest = لا شيء
تعيين myServer = لا شيء
تعيين myApplication = لا شيء
اضبط mySession = لا شيء
نهاية فرعية
"إظهار الجدول".
جدول عرض الوظيفة العامة()
Dim conn كـ ADODB.Connection جديد
Dim rs كـ ADODB.Recordset جديد
خافت ط كعدد صحيح
خافت ي كعدد صحيح
تعتيم intPage كعدد صحيح
تعتيم intPageCount كعدد صحيح
خافت strScriptName كسلسلة
خافت intPos كعدد صحيح
خافت intFieldCount كعدد صحيح
'احصل على المسار
strScriptName = MyRequest.ServerVariables("Script_Name")
intPos = InStrRev(strScriptName, "/")
إذا intPos <> 0 ثم
strScriptName = منتصف (strScriptName، intPos + 1)
نهاية إذا
إذا كان IsEmpty(MyRequest("page")) إذن
الصفحة الرئيسية = 1
آخر
intPage = CInt(MyRequest("page"))
نهاية إذا
على خطأ GoTo يخطئ
conn.Open "الموفر=SQLOLEDB.1;معلومات الأمان المستمرة=خطأ;معرف المستخدم=sa;الكتالوج الأولي=Northwind;مصدر البيانات=مضيف محلي"
rs.Open mstrSql، conn، adOpenStatic، adLockReadOnly
'احصل على عدد السجلات
intFieldCount = rs.Fields.Count
""جدول الإخراج""
MyResponse.Write "<حدود الجدول=1 تباعد الخلايا=0 خلية الحشو=2>"
إذا لم يكن rs.EOF ثم
rs.PageSize = mPageSize
rs.AbsolutePage = intPage
"احصل على رقم الصفحة."
intPageCount = rs.PageCount
"التعامل مع الترحيل."
إذا كان intPage <1، فإن intPage = 1
إذا كان intPage > intPageCount، فإن intPage = intPageCount
"رأس الإخراج."
MyResponse.اكتب "<tr>"
لأني = 0 إلى intFieldCount - 1
MyResponse.Write "<th>" & rs(i).Name & "</th>"
التالي
MyResponse.اكتب "</tr>"
"محتوى الإخراج."
لأني = 1 إلى mPageSize
إذا rs.EOF ثم
الخروج ل
نهاية إذا
MyResponse.اكتب "<tr>"
من أجل j = 0 إلى intFieldCount - 1
MyResponse.Write "<td>" & rs.Fields(j).Value & "</td>"
التالي
MyResponse.اكتب "</tr>"
rs.MoveNext
التالي
"ترحيل الصفحات الإخراج."
MyResponse.اكتب "<tr>"
إذا intPage <> 1 ثم
MyResponse.Write "<a href=" & strScriptName & "?page=1>[الصفحة الأولى]</a>"
MyResponse.Write "<a href=" & strScriptName & "?page=" & intPage - 1 & " >[الصفحة السابقة]</a>"
نهاية إذا
إذا كان intPage <> intPageCount ثم
MyResponse.Write "<a href=" & strScriptName & "?page=" & intPage + 1 & ">[الصفحة التالية]</a>"
MyResponse.Write "<a href=" & strScriptName & "?page=" & intPageCount & ">[الصفحة الأخيرة]</a>"
نهاية إذا
MyResponse.Write "الصفحة:<FONT COLOR='Red'>" & intPage & "/ " & intPageCount & "</FONT>"
MyResponse.اكتب "</tr>"
نهاية إذا
MyResponse.اكتب "</table>"
'الإفراج عن الموارد
إذا لم يكن rs لا شيء ثم
إذا rs.State = 1 ثم
إغلاق
نهاية إذا
سيترز = لا شيء
نهاية إذا
إذا لم يكن كون لا شيء ثم
إذا conn.State = 1 ثم
conn.Close
نهاية إذا
تعيين كون = لا شيء
نهاية إذا
وظيفة الخروج
:
MyResponse.اكتب الخطأ.الرقم والخطأ.الوصف
إذا لم يكن rs لا شيء ثم
إذا rs.State = 1 ثم
إغلاق
نهاية إذا
سيترز = لا شيء
نهاية إذا
إذا لم يكن كون لا شيء ثم
إذا conn.State = 1 ثم
conn.Close
نهاية إذا
تعيين كون = لا شيء
نهاية إذا
وظيفة النهاية
"تحديد السمات
الملكية العامة تحصل على ShowPageSize() كمتغير
ShowPageSize = mPageSize
ملكية النهاية للملكية
العامة Let ShowPageSize(ByVal vNewValue As Variant)
mPageSize = vNewValue
للملكية النهائية
احصل على strSQL() كمتغير
strSQL = mstrSql
نهاية الملكية العامة للملكية
strSQL (ByVal vNewValue As Variant)
mstrSql = vNewValue
نهاية الملكية
قم بتجميعه في ملف Dll وسيقوم النظام بتسجيله تلقائيًا.
بخلاف ذلك، قم بتسجيل Regsvr32 f:testfcom.dll يدويًا
لاختبار
interdev6.0 المرئي المفتوح وإنشاء ملف fz8.asp
رمز البرنامج
<%@ اللغة=VBScript %>
<أتش تي أم أل>
<الجسم>
<%
كائن خافت
تعيين obj=server.CreateObject("fcom.fz8")
'"عدد السجلات المعروضة في كل صفحة."
obj.ShowPageSize=10
'"بيان SQL المعروض."
obj.strSQL = "اختر معرف العميل، اسم الشركة، اسم جهة الاتصال، عنوان جهة الاتصال، العنوان من العملاء"
obj.ShowTable()
%>
</الجسم>
</HTML>