في المقالة المنشورة منذ بعض الوقت، يمكن عرض رمز اتصال قاعدة البيانات مباشرة في ملف ASP. هذه المرة تم تغليفها مرة أخرى.
افتح vb، وأنشئ عنصر تحكم Activex جديدًا، واسم المشروع هو WebDb، واسم الوحدة النمطية للفئة هو GetInfomation،
والمرجع "Microsoft Activex Data Object 2.6 Library"
Private Conn As ADODB.Connection
Private Rs As ADODB.Recordset
'الوظيفة: تحديد ما إذا كانت قاعدة البيانات متصلة بشكل صحيح
' يمكنك تغيير سلسلة الاتصال
الوظيفة العامة GetConn()
Conn.Open "Provider=SQLOLEDB.1;معلومات الأمان المستمرة=False;معرف المستخدم=sa;الكتالوج الأولي=Northwind;مصدر البيانات" =yang"
إذا كان Err.Number <> 0 ثم
GetConn = False،
وإلا فإن
GetConn = True
End If
End Function
'وفقًا لمعرف الموظف الذي تم إدخاله، احصل على اسم الموظف
الوظيفة العامة GetEmployeeName(strEmployeeID As Integer) كسلسلة
Dim strSql كمجموعة سلسلة
rs = ADODB.Recordset الجديد
strSql = "حدد اسم العائلة + الاسم الأول من الموظفين حيث معرف الموظف =" & strEmployeeID
rs.Open strSql، Conn، adOpenStatic، adLockOptimistic
إذا كان rs.EOF ثم
GetEmployeeName = ""
آخر
GetEmployeeName = rs.Fields(0)
End If
rs.Close
End Function
'إرجاع كافة قوائم الموظفينالوظيفة
العامة GetEmployeeList() كـ ADODB.Recordset
خافت strSql كمجموعة سلسلة
rs = ADODB.Recordset جديد
strSql = "حدد معرف الموظف، اسم العائلة، الاسم الأول، العنوان، عنوان كورتيسي، تاريخ الميلاد، تاريخ التعيين، العنوان، المدينة من الموظفين"
rs.CursorLocation = adUseClient
rs.Open strSql، Conn، adOpenStatic
قم بتعيين GetEmployeeList = rs
'rs.إغلاق
وظيفة النهاية
نقوم
بإنشاء صفحة ASP جديدة للاختبار، "TestWebDb1.asp". يستخدم بشكل أساسي لاختبار طريقة GetEmployeeList()
<HEAD>
<!- صفحة الاختبار->
<!- الوظيفة: مكون الاختبار->
<!- المؤلف: Tornado.NET ->
<%
Dim strTopic
Dim strTitle
Dim strContents
Dim DataQuery
Dim Rs
Dim Myself
Myself=Request.ServerVariables("script_name")
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
Set Rs=Server.CreateObject("adodb.recordset")
%>
<TITLE>
صفحة اختبار مكون البيانات
</TITLE>
<H1><CENTER>مرحبًا بك في مكون البيانات ( www.downcodes.com)</CENTER></H1 >
<%
Dim Flag
Flag=DataQuery.GetConn()
إذا كانت العلامة = خطأ، فاكتب
ResPonse. اكتب "لا يوجد رابط لقاعدة البيانات، يرجى التحقق"
ResPonse.End
End if
قم بتعيين Rs=DataQuery.GetEmployeeList()
إذا كان rs.eof ثم
Response.write "لا توجد بيانات، يرجى الاستعلام"
Response.end
end if
Rs.PageSize =3
Page= CLng(Request.QueryString ("الصفحة"))
إذا كانت الصفحة <1 ثم الصفحة = 1
إذا كانت الصفحة> Rs.PageCount ثم الصفحة = Rs.PageCount
Response.Write "<CENTER><TABLE BORDER=1 cellpadding=0 cellpadding=2>"
Response.Write "<tr BGCOLOR=silver align=center>"
Response.Write "<td>EmployeeID</TD>"
Response.Write "<td>الاسم الأخير</td>"
Response.Write "<td>الاسم الأول</td>"
Response.Write "<td>العنوان</a></td>"
Response.Write "<td>TitleOfCourtesy</ a></td>"
Response.Write "<td>تاريخ الميلاد</td>"
Response.Write "<td>تاريخ التوظيف</td>"
Response.Write "<td>العنوان</td>"
Response.Write " <td>المدينة</td>"
Response.اكتب "</tr>"
Rs.AbsolutePage = صفحة
لـ iPage = 1 إلى Rs.PageSize
Response.Write "<TR align=right>"
لـ i=0 إلى Rs.fields.count-1
Response.Write "<td>"&Rs.fields.item( i)&"</td>"
الاستجابةالتالية.
اكتب "</TR>"
Rs.MoveNext
إذا كان Rs.EOF ثم اخرج
للاستجابةالتالية
. اكتب "</TABLE></CENTER>"
%>
<Form name="myform"method="get">
<%If Page <> 1 ثم%>
<A HREF="<%=Myself%>?Page=1">الصفحة الأولى</A>
<A HREF = "<%=Myself%>?Page=<%=(Page-1)%>">الصفحة السابقة</A>
<%End If%>
<%If Page <> Rs.PageCount ثم%>
<A HREF= "<%=Myself%>?Page=<%=(Page+1)%>">الصفحة التالية</A>
<A HREF="<%=Myself%>?Page=<%=Rs. PageCount%> ">الصفحة الأخيرة</A>
<%End If%>
الصفحة:<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>
</Form>
<%
Rs.إغلاق
%>
إنشاء صفحة ASP جديدة، "TestWebDb2.asp". تُستخدم هذه الصفحة بشكل أساسي لاختبار طريقة GetEmployeeName()،
وهي<HEAD>
بسيطة نسبيًا
<!- صفحة الاختبار->
<!- الوظيفة: مكون الاختبار->
<!- المؤلف: Tornado.NET ->
<%
Dim DataQuery
Dim strID
Dim strResult
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
%>
<العنوان>
صفحة اختبار مكونات البيانات
</TITLE>
<H1><CENTER>مرحبًا بك في مكونات البيانات ( www.downcodes.com)</CENTER></H1 >
<%
If Len(Request.QueryString("ID")) > 0 ثم
strID = Request. سلسلة الاستعلام ("المعرف")
Dim Flag
Flag=DataQuery.GetConn()
إذا كان Flag=false ثم
ResPonse.Write "لا يوجد رابط لقاعدة البيانات، يرجى التحقق"
ResPonse.End
End if
strResult=DataQuery.GetEmployeeName(cint(strID))
إذا strResult = "" ثم
Response. اكتب "عذرًا، لا يوجد مثل هذا الرقم، يرجى الاستعلام"
Response.End
else
ResPonse.Write strResult
end if
End If
%>
<FORM NAME="MyForm">
<INPUT TYPE=TEXTBOX NAME="EmpID" SIZE=40><P>
<INPUT LANGUAGE="VBScript"
TYPE="BUTTON"
VALUE="بحث"
ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _
+ MyForm.EmpID.Value">
</فورم>
</HEAD>
بعض الأفكار: إذا تم وضع رابط قاعدة البيانات في أحد المكونات، وإذا كنت تريد تعديل رابط قاعدة البيانات، فستحتاج إلى إعادة ترجمة المكون، مما قد يسبب بعض المشكلات (ولكن يوصى بهذا، بعد كل شيء، قاعدة البيانات لن يتغير الاسم واسم الخادم كثيرًا)
إذا تم وضع رابط قاعدة البيانات على صفحة ASP، فيمكن تمرير القيمة إلى المكون من خلال السمات، ولكن سيتم تقليل الأمان.
حقًا...
حسنًا، لقد انتهت هذه المقالة وآمل أن تكون مفيدة للجميع.
الموضوع المستقبلي هو كيفية تنفيذ وظائف برنامج AspToDll.