Dans l'article publié il y a quelques temps, le code de connexion à la base de données peut être affiché directement dans le fichier ASP. Cette fois, il a été à nouveau encapsulé.
Ouvrez vb, créez un nouveau contrôle Activex, le nom du projet est WebDb, le nom du module de classe est GetInfomation,
référence "Microsoft Activex Data Object 2.6 Library"
Private Conn As ADODB.Connection
Private Rs As ADODB.Recordset
'Fonction : Déterminer si la base de données est correctement connectée
' Vous pouvez modifier la chaîne de connexion
Public Function GetConn()
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source =yang"
Si Err.Number <> 0 Then
GetConn = False
Sinon
GetConn = True
End If
End Function
'En fonction de l'ID d'employé saisi, obtenez le nom de l'employé.
Public Function GetEmployeeName(strEmployeeID As Integer) As String
Dim strSql As String
Set rs = New ADODB.Recordset
strSql = "sélectionnez LastName+firstname parmi les employés où EmployeeID=" & strEmployeeID
rs.Open strSql, Conn, adOpenStatic, adLockOptimistic
Si rs.EOF Then
GetEmployeeName = ""
Sinon
GetEmployeeName = rs.Fields(0)
End If
rs.Close
End Function
'Renvoyer toutes les listes d'employésPublic
Function GetEmployeeList() As ADODB.Recordset
Dim strSql As String
Set rs = New ADODB.Recordset
strSql = "sélectionnez EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,BirthDate,HireDate,Address,City parmi les employés"
rs.CursorLocation = adUseClient
rs.Open strSql, Conn, adOpenStatic
Définir GetEmployeeList = rs
'rs.Close
End Function
Nous
créons une nouvelle page ASP pour les tests, "TestWebDb1.asp". Principalement utilisé pour tester la méthode GetEmployeeList()
<HEAD>
<!- Page de test->
<!- Fonction : Composant de test->
<!- Auteur : 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>
Page de test du composant de données
</TITLE>
<H1><CENTER>Bienvenue dans le composant de données ( www.downcodes.com)</CENTER></H1 >
<%
Dim Flag
Flag=DataQuery.GetConn()
Si Flag=false alors
ResPonse.Write "Il n'y a pas de lien vers la base de données, veuillez vérifier"
ResPonse.End
End if
Définissez Rs=DataQuery.GetEmployeeList()
si rs.eof puis
Response.write "Aucune donnée, veuillez interroger"
Response.end
end if
Rs.PageSize =3
Page= CLng(Request.QueryString ("Page"))
Si Page < 1 Alors Page = 1
Si Page > Rs.PageCount Alors Page = Rs.PageCount
Response.Write "<CENTER><TABLE BORDER=1 Cellpacing=0 cellpadding=2>"
Response.Write "<tr BGCOLOR=silver align=center>"
Response.Write "<td>EmployeeID</TD>"
Response.Write "<td>Nom</td>"
Response.Write "<td>FirstName</td>"
Response.Write "<td>Titre</a></td>"
Response.Write "<td>TitleOfCourtesy</ a></td>"
Response.Write "<td>Date de naissance</td>"
Response.Write "<td>HireDate</td>"
Response.Write "<td>Adresse</td>"
Response.Write " <td>Ville</td>"
Réponse.Écrire "</tr>"
Rs.AbsolutePage = Page
Pour iPage = 1 À Rs.PageSize
Response.Write "<TR align=right>"
pour i=0 à Rs.fields.count-1
Response.Write "<td>"&Rs.fields.item( i)&"</td>"
prochaine
réponse.Écrivez "</TR>"
Rs.MoveNext
Si Rs.EOF puis quittez pour
la prochaine
réponse.Écrivez "</TABLE></CENTER>"
%>
<Form name="myform" method="get">
<%If Page <> 1 Then%>
<A HREF="<%=Myself%>?Page=1">Première page</A>
<A HREF = "<%=Myself%>?Page=<%=(Page-1)%>">Page précédente</A>
<%End If%>
<%If Page <> Rs.PageCount Then%>
<A HREF= "<%=Myself%>?Page=<%=(Page+1)%>">Page suivante</A>
<A HREF="<%=Myself%>?Page=<%=Rs. PageCount%> ">Dernière page</A>
<%End If%>
Page :<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>
</Form>
<%
Rs.ferme
%>
Créez une nouvelle page ASP, "TestWebDb2.asp". Principalement utilisée pour tester la méthode GetEmployeeName(),
cette page est relativement simple
<HEAD>
<!- Page de test->
<!- Fonction : Composant de test->
<!- Auteur : Tornado.NET ->
<%
Dim DataQuery
Dim strID
Dim strResult
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
%>
<TITRE>
Page de test des composants de données
</TITLE>
<H1><CENTER>Bienvenue dans les composants de données ( www.downcodes.com)</CENTER></H1 >
<%
If Len(Request.QueryString("ID")) > 0 Then
strID = Request. Chaîne de requête("ID")
Dim Flag
Flag=DataQuery.GetConn()
Si Flag=false alors
ResPonse.Write "Il n'y a pas de lien vers la base de données, veuillez vérifier"
ResPonse.End
End if
strResult=DataQuery.GetEmployeeName(cint(strID))
if strResult="" then
Response.Write "Désolé, il n'existe pas de numéro de ce type, veuillez interroger"
Response.End
else
ResPonse.Write strResult
end if
End If
%>
<FORM NAME="MonFormulaire">
<INPUT TYPE=TEXTBOX NAME="EmpID" SIZE=40><P>
<INPUT LANGUAGE="VBScript"
TYPE="BUTTON"
VALUE="Recherche"
ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _
+ MyForm.EmpID.Value">
</FORM>
</HEAD>
Quelques idées : Si le lien de la base de données est placé dans un composant, si vous souhaitez modifier le lien de la base de données, vous devrez recompiler le composant, ce qui peut poser quelques problèmes (mais cela est recommandé, après tout, la base de données le nom et le nom du serveur ne changeront pas souvent)
Si le lien de base de données est placé sur la page ASP, la valeur peut être transmise au composant via les attributs, mais la sécurité sera réduite.
Vraiment...
Bon, cet article est terminé, j'espère qu'il sera utile à tout le monde.
Le prochain sujet est de savoir comment implémenter les fonctions du logiciel AspToDll.