In dem vor einiger Zeit veröffentlichten Artikel kann der Datenbankverbindungscode direkt in der ASP-Datei angezeigt werden. Diesmal wurde es wieder gekapselt.
Öffnen Sie VB, erstellen Sie ein neues ActiveX-Steuerelement. Der Projektname lautet WebDb, der Name des Klassenmoduls lautet GetInfomation.
Verweisen Sie auf „Microsoft Activex Data Object 2.6 Library“.
Private Conn As ADODB.Connection
Private Rs As ADODB.Recordset
'Funktion: Bestimmen Sie, ob die Datenbank korrekt verbunden ist
' Sie können die Verbindungszeichenfolge ändern.
Öffentliche Funktion GetConn()
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;Benutzer-ID=sa;Initial Catalog=Northwind;Datenquelle =yang"
Wenn Err.Number <> 0, dann
GetConn = False,
sonst
GetConn = True
End If
End Function
'Gemäß der eingegebenen Mitarbeiter-ID den Namen des Mitarbeiters abrufen.
Öffentliche Funktion GetEmployeeName(strEmployeeID As Integer) As String
Dim strSql As String
Set rs = New ADODB.Recordset
strSql = "wählen Sie Nachname+Vorname von Mitarbeitern aus, wobei EmployeeID=" & strEmployeeID
rs.Open strSql, Conn, adOpenStatic, adLockOptimistic
If rs.EOF Then
GetEmployeeName = ""
Else
GetEmployeeName = rs.Fields(0)
End If
rs.Close
End Function
'Alle Mitarbeiterlisten zurückgebenPublic
Function GetEmployeeList() As ADODB.Recordset
Dim strSql As String
Set rs = New ADODB.Recordset
strSql = "wählen Sie EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,BirthDate,HireDate,Address,City von Mitarbeitern aus"
rs.CursorLocation = adUseClient
rs.Open strSql, Conn, adOpenStatic
Setze GetEmployeeList = rs
'rs.Close
End Function
Wir
erstellen eine neue ASP-Seite zum Testen, „TestWebDb1.asp“. Wird hauptsächlich zum Testen der GetEmployeeList()-Methode
<HEAD>
verwendet
<!- Testseite->
<!- Funktion: Testkomponente->
<!- Autor: 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>
Datenkomponenten-Testseite
</TITLE>
<H1><CENTER>Willkommen bei der Datenkomponente ( www.downcodes.com)</CENTER></H1 >
<%
Dim Flag
Flag=DataQuery.GetConn()
Wenn Flag=false, dann
ResPonse.Write „Es gibt keinen Link zur Datenbank, bitte überprüfen Sie“
ResPonse.End
End if
Setze Rs=DataQuery.GetEmployeeList()
if rs.eof then
Response.write „Keine Daten, bitte abfragen“
Response.end
end if
Rs.PageSize =3
Page= CLng(Request.QueryString ("Page"))
Wenn Seite < 1, dann Seite = 1.
Wenn Seite > Rs.PageCount, dann Seite = Rs.PageCount
Response.Write „<CENTER><TABLE BORDER=1 Cellspacing=0 Cellpadding=2>“
Response.Write „<tr BGCOLOR=silver align=center>“
Response.Write „<td>EmployeeID</TD>“
Response.Write „<td>LastName</td>“
Response.Write „<td>FirstName</td>“
Response.Write „<td>Title</a></td>“
Response.Write „<td>TitleOfCourtesy</ a></td>"
Response.Write "<td>BirthDate</td>"
Response.Write "<td>HireDate</td>"
Response.Write "<td>Address</td>"
Response.Write " <td>Stadt</td>"
Response.Write "</tr>"
Rs.AbsolutePage = Seite
für iPage = 1 bis Rs.PageSize
Response.Write „<TR align=right>“
für i=0 bis Rs.fields.count-1
Response.Write „<td>“&Rs.fields.item( i)&"</td>"
next
Response.Write "</TR>"
Rs.MoveNext
If Rs.EOF Then Exit For
next
Response.Write "</TABLE></CENTER>"
%>
<Form name="myform" method="get">
<%If Page <> 1 Then%>
<A HREF="<%=Myself%>?Page=1">Erste Seite</A>
<A HREF = "<%=Myself%>?Page=<%=(Page-1)%>">Vorherige Seite</A>
<%End If%>
<%If Page <> Rs.PageCount Then%>
<A HREF= "<%=Myself%>?Page=<%=(Page+1)%>">Nächste Seite</A>
<A HREF="<%=Myself%>?Page=<%=Rs. PageCount%> ">Letzte Seite</A>
<%End If%>
Seite:<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>
< /Form>
<%
Rs.close
%>
Erstellen Sie eine neue ASP-Seite, „TestWebDb2.asp“.
Diese Seite wird
hauptsächlich zum Testen der GetEmployeeName()-Methode verwendet und
ist relativ einfach<HEAD>
<!- Testseite->
<!- Funktion: Testkomponente->
<!- Autor: Tornado.NET ->
<%
Dim DataQuery
Dim strID
Dim strResult
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
%>
<TITEL>
Testseite für Datenkomponenten
</TITLE>
<H1><CENTER>Willkommen bei Data Components ( www.downcodes.com)</CENTER></H1 >
<%
If Len(Request.QueryString("ID")) > 0 Then
strID = Request. QueryString("ID")
Dim Flag
Flag=DataQuery.GetConn()
Wenn Flag=false, dann
ResPonse.Write „Es gibt keinen Link zur Datenbank, bitte überprüfen Sie“
ResPonse.End
End if
strResult=DataQuery.GetEmployeeName(cint(strID))
if strResult="" then
Response.Write „Sorry, there is no such number, please query“
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="Suchen"
ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _
+ MyForm.EmpID.Value">
</FORM>
</HEAD>
Einige Ideen: Wenn die Datenbankverknüpfung in einer Komponente platziert ist und Sie die Datenbankverknüpfung ändern möchten, müssen Sie die Komponente neu kompilieren, was zu Problemen führen kann (dies wird jedoch schließlich für die Datenbank empfohlen). Name und Servername ändern sich nicht oft.)
Wenn der Datenbanklink auf der ASP-Seite platziert wird, kann der Wert über Attribute an die Komponente übergeben werden, die Sicherheit wird jedoch verringert.
Wirklich...
Okay, dieser Artikel ist zu Ende.
Das zukünftige Thema ist, wie man die Funktionen der AspToDll-Software implementiert.