Conférence ASP 6 : ASP et base de données (1)
Auteur:Eve Cole
Date de mise à jour:2009-05-30 19:55:05
Dans les conférences précédentes, nous avons appris le contenu de base d'ASP. En utilisant ces connaissances de manière flexible, vous pouvez déjà utiliser ASP pour créer un site Web. Mais d'une manière générale, un site Web réel et complet ne peut être séparé d'une base de données, car une petite quantité de données, comme le nombre de visiteurs de la page Web, peut être stockée dans des fichiers texte, mais dans les applications réelles, les données qui doivent être sauvegardées est bien plus que cela Petit à petit, et ces données sont souvent liées, l'utilisation d'une base de données pour gérer ces données peut être facilement interrogée et mise à jour. Il existe de nombreux types de bases de données, telles que : la base de données Fox (.dbf), la base de données Access (.mdb), Informix, Oracle et SQL Server, etc. Dans cette conférence, j'utiliserai la base de données Microsoft Access et SQL Server 7.0 comme exemples pour illustrer ASP Comment accéder à la base de données. Pourquoi choisir ASP ? Les statistiques montrent que SQL Server 7.0 est actuellement la base de données la plus rapide et la plus rentable, et de nombreux grands sites Web tels que www.8848.net, www.dell.com, www.hotbot.com sont créés à l'aide de la technologie ASP. une technologie relativement facile à maîtriser et très pratique. Il faut essayer de l’aborder, de la comprendre, puis de l’utiliser avec confiance et courage.
Quels préparatifs doivent être effectués avant une étude plus approfondie :
1. Si vous n'avez jamais été en contact avec une base de données, il est recommandé d'installer d'abord Microsoft Access dans Office et d'acquérir les connaissances de base sur les bases de données.
2. Il est préférable d'installer Microsoft SQL Server 7.0. Une fois installé, il peut être utilisé immédiatement sans aucun paramètre. Notez que la version DeskTop doit être installée sous Windows 9.x, tandis que les versions antérieures à 7.0 ne peuvent être installées que sous NT Server.
3. Le contenu discuté ensuite nécessite un composant appelé MDAC (Microsoft Data Access Components). Ce composant est déjà inclus dans ASP. Si vous souhaitez en savoir plus sur le contenu concerné ou télécharger la dernière version, vous pouvez visiter http://www. microsoft.com/data.
1. Établir une connexion avec la base de données Avant de commencer officiellement, permettez-moi de vous présenter ADO - ActiveX Data Objects. Si vous êtes nouveau dans ce concept, il vous suffit de considérer ADO comme un pont entre ASP et la base de données.
(1) Méthode 1 pour établir une connexion avec la base de données Microsoft Access : Exemple wuf40.asp
<% @LANGUAGE = VBScript %>
<% ' wuf40.asp
Option explicite
Dim Cnn, StrCnn
' 1 - Créer un objet de connexion
Définir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={Pilote Microsoft Access (*.mdb)}; DBQ=" & Server.MapPath("asp") & "NorthWind.mdb;"
'2 - Ouvrir la base de données à l'aide de la méthode Open de l'objet Connection
Cnn.Ouvrir StrCnn
Response.Write Server.MapPath("asp") & "NorthWind.mdb;" & "<br>"
Response.Write "Connexion à la base de données réussie : " & Cnn.State & "<br>"
'3 - Fermez la connexion à l'aide de la méthode Close de l'objet Connection
Cnn.close
Response.Write "La base de données a été fermée : " & Cnn.State
'4 - Supprimer l'objet Connection de la mémoire pour libérer des ressources
Définir Cnn = Rien
%>
Northwind.mdb est une base de données exemple fournie avec Microsoft Access97. Elle se trouve généralement dans le répertoire "Microsoft OfficeOfficeSamples". Vous pouvez la trouver vous-même puis copier ce fichier dans le répertoire correspondant du serveur Web (dans celui-ci). exemple, placez-le dans C :InetPubhomeasp).
Ici, la méthode MapPath de l'objet Server convertit le chemin virtuel spécifié en chemin de fichier réel et le résultat final est similaire à : C:InetPubhomeaspNorthwind.mdb.
Méthode 2 : utilisez OLE DB pour créer une connexion Microsoft Access Les éléments clés sont répertoriés ci-dessous.
Définir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Fournisseur = Microsoft.Jet.OLEDB.4.0 ; Source de données = C:InetpubhomeaspNorthwind.mdb"
Cnn.Ouvrir StrCnn
(2) Méthode 1 pour établir une connexion avec la base de données SQL Server : Utilisez OLE DB pour vous connecter à SQL Server Pour plus de détails, consultez la routine wuf41.asp.
Définir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider=sqloledb ; ID utilisateur=sa; Mot de passe=; Catalogue initial=pubs; Source de données=ICBCZJP"
Cnn.Ouvrir StrCnn
Spécifiez le nom de la base de données après le catalogue initial et le nom de la machine après la source de données (c'est-à-dire le nom de l'ordinateur dans Réseau → Propriétés → Identité) ou l'adresse IP (le service DNS doit être installé).
Deuxième méthode :
Définir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Pilote={SQL Server};Serveur=ICBCZJP;UID=sa;PWD=;Base de données=pubs"
Cnn.Ouvrir StrCnn
En plus des deux méthodes ci-dessus, vous pouvez bien entendu également utiliser la méthode la plus classique présentée dans de nombreux articles et supports : utiliser ODBC pour générer une connexion. Il s'agit d'abord d'établir une connexion dans "Sources de données ODBC" dans le panneau de configuration du serveur Web, puis d'utiliser une chaîne de connexion similaire à "StrCnn ="DSN=ADOCnn = sa;PWD=;Database=pubs"" dans ASP. . Je ne la présenterai pas en détail ici. Premièrement, ce n’est pas la meilleure méthode. Deuxièmement, d’autres documents ont introduit cette méthode.
De plus, si vous êtes intéressé, vous pouvez télécharger la routine wuf42.asp pour voir comment utiliser les propriétés ConnectionTimeout et ConnectionString de l'objet Connection.
2. La base de données commence ici - récupération des données qui existent déjà dans la base de données. Nous supposons maintenant que vous possédez déjà les connaissances de base en matière de base de données et que vous savez utiliser Microsoft Access pour ouvrir la table "Expéditeur" dans Northwind.mdb et voir. les données stockées dans le tableau. Quelques éléments de données. La question est maintenant de savoir comment utiliser ASP pour afficher ces données dans le navigateur. Voici trois méthodes.
Rappel spécial : si la base de votre base de données est faible, il vous suffit de pouvoir utiliser la deuxième méthode. Ne soyez pas gourmand pour éviter d'aller trop loin, alors n'oubliez pas ! Souviens-toi!
Méthode 1 : utilisez uniquement l’objet Connection. Exemple wuf43.asp
<% @LANGUAGE = VBScript %>
<%' wuf43.asp
Option explicite
« Cette phrase est très importante, elle peut garantir que les données que vous voyez ne sont pas les données mises en cache sur le client.
'Mais les dernières données mises à jour à tout moment côté serveur
Réponse.Expire = 0
'Partie 1 : Établir une connexion
Dim Cnn, StrCnn
Définir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Fournisseur = Microsoft.Jet.OLEDB.4.0 ; Source de données = C:InetpubhomeaspNorthwind.mdb"
Cnn.Ouvrir StrCnn
'Partie 2 : Utiliser la méthode Execute de l'objet Connection pour obtenir le jeu d'enregistrements
Faible StrSQL, rsTest
" Ce qui suit est une instruction SQL (instruction de requête structurée), qui ne sera pas présentée en détail dans cette conférence. " Il est recommandé de lire ce livre. L'utilisation de base est relativement simple et vous pourrez l'apprendre une fois que vous l'aurez appris.
'Cette phrase signifie sélectionner toutes les données de la table des transporteurs
StrSQL = "Sélectionner * De l'expéditeur"
Définir rsTest = Cnn.Execute(StrSQL)
%>
<HTML>
<CORPS>
<% 'Partie 3 : Afficher le jeu d'enregistrements obtenu sur le navigateur
'Boucle jusqu'à la fin de l'enregistrement - affichage ligne par ligne, enregistrement par enregistrement
Faire sans rsTest.EOF
'Les deux lignes suivantes ont le même effet, c'est-à-dire que rsTest("Shipper ID") est équivalent à rsTest(0)
Response.Write rsTest("ID de l'expéditeur") & " " & rsTest("Nom de la société") & " " & rsTest("Téléphone") & " " & "<BR>"
'Réponse.Écrire rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
'Passer à l'enregistrement suivant - cette phrase ne doit pas être omise, sinon elle tombera dans une boucle infinie
rsTest.MoveNext
Boucle
'Partie 4 : Nettoyer le champ de bataille
Cnn.close
Définir rsTest = Rien : Définir Cnn = Rien
%>
</CORPS>
</HTML>
Cet exemple est très simple. La troisième partie montre les données dans le style de sortie typique de la base de données. Vous pouvez vous référer aux connaissances que vous avez acquises auparavant et ajouter des tableaux et des couleurs pour embellir les résultats de sortie.
Les utilisateurs non juniors peuvent se référer à wuf44.asp pour voir l’utilisation complète de la méthode Execute.
Méthode 2 : En créant un objet Recordset - n'oubliez pas que les débutants n'ont besoin que de maîtriser cette méthode.
Exemple : wuf45.asp, les autres parties sont les mêmes que wuf43.asp, la clé réside dans la deuxième partie du programme.
'Partie 2 : Obtenez le jeu d'enregistrements en créant un objet RecordSet
Faible StrSQL, rsTest
'Créer un objet Recordset
Définir rsTest = Server.CreateObject("ADODB.Recordset")
StrSQL = "Sélectionnez l'ID de l'opérateur, le numéro de téléphone, le nom de l'entreprise De l'opérateur Où numéro de téléphone = '(503) 555-9931'"
'Attacher l'objet Recordset à la connexion Cnn
Définir rsTest.ActiveConnection = Cnn
'Ouvrez le jeu d'enregistrements à l'aide de la méthode Open de l'objet Recordset
rsTest.Open StrSQL
Examinons maintenant l'utilisation complète de la méthode Open de l'objet Recordset, par exemple wuf48.asp.
<% @LANGUAGE = VBScript %>
<%' wuf48.asp
Option explicite
Réponse.Expire = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Partie 1 : Établir une connexion
Dim Cnn, StrCnn
Définir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Fournisseur = Microsoft.Jet.OLEDB.4.0 ; Source de données = C:InetpubhomeaspNorthwind.mdb"
Cnn.Ouvrir StrCnn
'Partie 2 : Obtenez le jeu d'enregistrements en créant un objet RecordSet
Dim rsTest
Définir rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.Open "Expéditeur", Cnn, adOpenForwardOnly, adLockReadOnly, adCmdTable
%>
<HTML>
<CORPS>
<% 'Partie 3 : Afficher le jeu d'enregistrements obtenu sur le navigateur
Faire sans rsTest.EOF
Réponse.Écrire rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
rsTest.MoveNext
Boucle
'Partie 4 : Nettoyer le champ de bataille
rsTest.Fermer : Cnn.Fermer
Définir rsTest = Rien : Définir Cnn = Rien
%>
</CORPS>
</HTML>
analyser:
1. Regardez d’abord les phrases clés :
rsTest.Open "Expéditeur", Cnn, adOpenForwardOnly, adLockReadOnly, adCmdTable
Le premier paramètre peut être un nom de table (tel que : transitaire) ou une instruction SQL (telle que wuf45.asp).
Le deuxième paramètre spécifie la connexion actuelle.
Le troisième paramètre indique le CursorType, qui détermine le type de curseur que le fournisseur doit utiliser lors de l'ouverture du Recordset. Cela utilise un curseur qui avance uniquement.
Le quatrième paramètre indique le LockType, qui détermine le type de verrou (concurrence) que le fournisseur doit utiliser lors de l'ouverture du Recordset. Spécifiez ici la lecture seule.
Le cinquième paramètre est lié au premier paramètre. Si le premier paramètre dans cet exemple est le nom de la table, le cinquième paramètre utilise adCmdTable. Si le premier paramètre est une instruction SQL, le premier paramètre est adCmdText, par exemple :
rsTest.Open "Sélectionner * Du transporteur", Cnn, adOpenForwardOnly, adLockReadOnly, adCmdText
Je ne pense pas que la plupart des gens puissent vraiment comprendre la signification de ces cinq paramètres. Au début, il suffit de les copier et de les utiliser. À l'avenir, nous continuerons à être en contact et nous deviendrons. parfait à mesure qu'on s'y habitue.
Les deux paramètres CursorType et LockType seront expliqués en détail ci-dessous. Pour récupérer des données, il vous suffit de les définir selon cet exemple.
2. Ces cinq paramètres peuvent également être définis à l'aide des propriétés de l'objet Recordset, tel que wuf46.asp.
'Partie 2 : Obtenez le jeu d'enregistrements en créant un objet RecordSet
Dim rsTest
Définir rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.ActiveConnection = Cnn
rsTest.CursorType = adOpenForwardOnly
rsTest.LockType = adLockReadOnly
rsTest.Ouvrir "Expéditeur", , , ,adCmdTable
3. Regardez à nouveau cette phrase : <!--#include file="adovbs.inc"-->.
(1) Étant donné que des constantes telles que adOpenForwardOnly, adLockReadOnly et adCmdText sont utilisées, le fichier adovbs.inc doit être inclus.
(2) Le fichier adovbs.inc se trouve généralement dans le répertoire Program FilesCommon FilesSYSTEMADO. Vous pouvez le copier dans le répertoire actuel du serveur Web (ce fichier est également inclus dans le package de téléchargement de cette conférence). .
(3) Ouvrez ce fichier avec le Bloc-notes et jetez-y un œil, et vous comprendrez pourquoi ce fichier est nécessaire.
Troisième méthode : En introduisant l’objet Command – cela doit être étudié en partant du principe que vous en êtes capable.
<% @LANGUAGE = VBScript %>
<%' wuf47.asp
Option explicite
Réponse.Expire = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Partie 1 : Établir une connexion
Dim Cnn, StrCnn
Définir Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Fournisseur = Microsoft.Jet.OLEDB.4.0 ; Source de données = C:InetpubhomeaspNorthwind.mdb"
Cnn.Ouvrir StrCnn
'Partie 2 : Obtenez le jeu d'enregistrements en créant un objet Command
Dim StrSQL, rsTest, cmdTest
'Créer un objet Commande
Définir cmdTest = Server.CreateObject("ADODB.Command")
StrSQL = "SELECT MAX(quantity) FROM détails de la commande"
cmdTest.CommandText = StrSQL
cmdTest.CommandType = adCmdText 'Indique que le type de commande est une instruction SQL
Définir cmdTest.ActiveConnection = Cnn
'Utilisez la méthode Execute de l'objet Command pour obtenir le jeu d'enregistrements.
Définir rsTest = cmdTest.Execute
%>
<HTML>
<CORPS>
<% 'Partie 3 : Afficher le jeu d'enregistrements obtenu sur le navigateur
Faire sans rsTest.EOF
Réponse.Écrire rsTest(0) & "<BR>"
rsTest.MoveNext
Boucle
'Partie 4 : Nettoyer le champ de bataille
rsTest.Fermer : Cnn.Fermer
Définir rsTest = Rien : Définir cmdTest = Rien : Définir Cnn = Rien
%>
</CORPS>
</HTML>
L'utilisation de l'objet Command sera expliquée dans la programmation approfondie de la base de données à l'avenir.
Cette conférence présente principalement comment se connecter à la base de données et récupérer les données de la base de données. Les débutants seront inévitablement un peu confus. N'oubliez pas qu'il vous suffit d'apprendre les points de connaissances suivants :
1. Comment utiliser OLE DB pour établir une connexion avec une base de données Microsoft Access ;
2. Comment utiliser OLE DB pour établir une connexion avec une base de données Microsoft SQL Server ;
3. Comment récupérer des données de la base de données en créant un objet Recordset.