ASP possède l'une des fonctions les plus importantes, à savoir qu'il vous permet de vous connecter très facilement à la base de données. Généralement, il est connecté à une base de données Access ou SQL. Étant donné qu’Access est le moyen le plus simple à démarrer et qu’Access est peut-être déjà installé sur votre ordinateur, nous utiliserons Access dans les exemples suivants. Une fois que vous aurez appris les principales méthodes techniques de connexion des bases de données ASP et Access, lorsque vous commencerez à utiliser SQL Server, vous constaterez que les technologies clés requises pour les deux sont fondamentalement les mêmes.
Créer un nom de source de données (DSN)
Vous pouvez rendre votre base de données disponible pour une utilisation dans ASP en créant un DSN système pour votre base de données dans le panneau de configuration. Vous pouvez créer plusieurs DSN sur votre ordinateur local, chaque DSN correspondant à une base de données différente que vous utilisez. Après avoir configuré le DSN, vous pouvez tester votre page sur votre serveur local. Si votre site Web est
desservi par un FAI et que celui-ci prend en charge ASP, il est très probable qu'il fournisse une interface graphique pour créer un DSN pour votre base de données.
Sous Windows 95/98/NT, ouvrez le Panneau de configuration (Menu Démarrer -> Paramètres -> Panneau de configuration) et double-cliquez sur ODBC pour entrer.
Sélectionnez le DSN du système et cliquez sur Ajouter.
Sélectionnez « Pilote Microsoft Access » et cliquez sur Terminer.
Remplissez le nom de la source de données. C'est le nom que vous donnez à votre base de données, c'est donc la même opération qu'un alias.
Cliquez sur le bouton Sélectionner dans la sélection de base de données pour parcourir l'emplacement du système où est stockée la base de données Access que vous avez créée.
Cliquez sur OK
Le nouveau DSN apparaîtra désormais dans le DSN du système et sera disponible sur votre serveur local.
Connexion à la base de données Établissons une connexion sans DSN et voyons comment se connecter à la base de données. Lorsque vous créez un DSN, vous stockez déjà certaines informations sur la base de données, vous n'avez donc pas besoin de la répéter à chaque fois que vous devez utiliser certaines informations telles que le type de base de données, le nom, l'emplacement de stockage et les propriétés facultatives, les utilisateurs et les mots de passe.
Pour créer une connexion sans DSN, vous devez fournir les mêmes informations. L'exemple suivant montre comment établir une connexion sans DSN à une base de données appelée products :
<%
StrConnect = "Pilote={Pilote Microsoft Access (*.mdb)} ; DBQ=C:dbproducts.mdb"
Définir objConn = Server.CreateObject ("ADODB.Connection")
objConn.OpenStrConnect
%>
La deuxième ligne définit le pilote et le chemin physique de la base de données. Afin d'utiliser une connexion sans DSN, vous devez connaître l'emplacement réel du fichier (chemin absolu). Server.MapPath fournit un environnement de travail simple à toute personne utilisant des services d'hébergement pour trouver les chemins d'accès réels difficiles à trouver.
Si nous avons créé un DSN système nommé produits, le code de connexion doit être :
<%
Définir objConn = Server.CreateObject ("ADODB.Connection")
objConn.Ouvrir "produits"
%>
Maintenant que la base de données est ouverte, que pouvez-vous faire ? La première chose est bien sûr de lire une série d’enregistrements dans la base de données et de les insérer dans votre page. Mais avant cela, vous avez besoin d’un jeu d’enregistrements.
Jeu d'enregistrements
Un jeu d'enregistrements est constitué de toutes les informations stockées dans une table de base de données spéciale. Par conséquent, lorsque vous ouvrez ce jeu d'enregistrements, le contenu de toutes les lignes et colonnes de la table est accessible. Vous devez ouvrir ce jeu d'enregistrements tout comme vous devez ouvrir la connexion à la base de données. Leurs commandes sont similaires :
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "downloadable", strConnect, 0,1,2
crée un jeu d'enregistrements (objRec) nommé table téléchargeable, qui est défini dans strConnect dans la base de données des produits. En utilisant Recordset ouvert, nous pouvons parcourir ce tableau et afficher tout son contenu à l'écran. Alternativement, nous pouvons tester le contenu de champs spécifiques, ou simplement écrire à l'écran ce qui nous intéresse.
Chaque colonne représente un champ. Ainsi, si la table de base de données ressemble à ceci :
ID produit | Nom | SKU | Fichier |
1 | PR12345 | Produit A | install_a.exe |
2 | PR12346 | Produit B | Install_b.exe |
Ensuite, nous avons le contenu des champs suivants : ProductID, SKU, Name et File. Votre tableau comportera probablement de nombreux champs supplémentaires, qui peuvent contenir de nombreux éléments, tels que le prix ou la description du produit (article). Mais ce diagramme schématique peut vous fournir le concept le plus élémentaire des tables de base de données.
Remplir le contenu du jeu d'enregistrements est très simple en utilisant le jeu d'enregistrements. Si vous souhaitez parcourir la base de données et imprimer toutes les informations à l'écran, vous pouvez procéder comme suit :
While NOT objRec.EOF
' dit de le faire tant que nous ne sommes pas arrivés à la fin du fichier
Réponse.WriteobjRec("ProductID") & ", "
Réponse.WriteobjRec("SKU") & ", "
Réponse.WriteobjRec("Nom") & ", "
Réponse.WriteobjRec("Fichier") & "<BR>"
objRec.MoveNext
Wende;
Même si vous n'avez pas utilisé les boucles de cette manière, vous pouvez toujours lire ce code pour écrire des informations dans des chaînes délimitées par des virgules, et lorsqu'une nouvelle ligne est créée dans la table de la base de données, créez une nouvelle ligne pour enregistrer cette ligne dans la table. Vous pouvez utiliser la même méthode pour écrire des données dans un tableau HTML. En utilisant Response.Write pour ajouter vos balises TABLE, il y a quelques points à garder à l'esprit :
vos balises HTML et le contenu entre guillemets.
Si vos balises ou votre contenu utilisent des guillemets, veillez à utiliser des guillemets doubles :
<TAILLE DE POLICE=""+2"">.
Utilisez & pour connecter des variables et des informations HTML/contenu afin de sélectionner des champs dans le jeu d'enregistrements. Supposons que notre base de données de produits contient également un champ appelé OS. Supposons que ce champ soit un délimiteur de plate-forme. Supposons encore une fois que les données stockées dans ce champ ne peuvent être que les suivantes : Windows NT, Windows 95, Windows 98, Windows, Mac, Unix ou Linux.
Ensuite, nous pouvons confirmer quels champs nous devons imprimer à l'écran et quels champs nous voulons ignorer. Alternativement, nous pouvons sélectionner les champs qui utilisent un format et les autres champs qui utilisent un format différent, par exemple en utilisant des couleurs différentes.
L'utilisation d'une simple boucle If... peut nous donner plus de contrôle sur la base de données. Imprimons d'abord les enregistrements sur les produits Windows NT :
<TABLE BORDER=0 WIDTH=600>
<TR><TD COLSPAN=4 ALIGN=CENTER><FONT SIZE="+1"<<B>Produits Windows NT</B></FONT></TD></ TR>
<%
While NOT objRec.EOF
If objRec("OS") = "Windows NT" ALORS ' spécifie le critère
Response.Write "<TR><TD BGCOLOR=""#FFFF66"">" & objRec("ProductID") & " </TD>"
Réponse.Écrivez "<TD>" & objRec("SKU") & "</TD>"
Réponse.Écrivez "<TD>" & objRec("Name") & "</TD>"
Response.Write "<TD>" & objRec("File") & "</TD></TR>"
fin si
objRec.MoveNext
Allez
%>
</TABLE>
Ajout d'un enregistrement Une fois que vous aurez commencé à utiliser les jeux d'enregistrements et ASP, vous souhaiterez vraiment pouvoir ajouter des données à la base de données sur le réseau. L'ajout de contenu est important, par exemple, lorsque vous souhaitez que vos visiteurs Web laissent leurs points de vue et opinions, ou lorsque vous souhaitez effectuer des mises à jour administratives.
Le code suivant ouvre un jeu d'enregistrements lié à une table de base de données avec les noms des livres et de leurs auteurs. Vous avez probablement déjà vu cela, mais cette fois, les trois dernières spécifications définissent différents types de pointeurs : adOpenStatic, adLockOptimistic, adCmdTable :
<% ' la connexion à la base de données est déjà effectuée ; le code n'est pas affiché ici ;
Définir objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "livres", bookdb, adOpenStatic, adLockOptimistic, adCmdTable
%>
(Si vous n'utilisez pas le fichier de copie de adovbs.inc, la troisième ligne devrait être : objRec.Open "books", bookdb, 3,3,2.
Le jeu d'enregistrements est maintenant prêt à recevoir des données, il vous suffit de le faire)
.pour lui dire quoi ajouter. Dans ce cas, disons que nous prenons les variables du tableau : strBookTitle et strBookAuthor. Notre table, books, comporte deux champs appelés Titre et Auteur, nous pouvons donc ajouter un nouvel enregistrement en utilisant l'instruction suivante :
<%
objRec.AddNew
ObjRec("Titre") = strBookTitle
objRec("Auteur") = strBookAuthor
objRec.Update
%>
strBookTitle et strBookAuthor représentent des valeurs et sont généralement accessibles par les utilisateurs. Si vous souhaitez simplement tester la fonctionnalité d'ajout, vous pouvez ajouter une variable pour le titre et l'auteur - n'oubliez pas d'utiliser des guillemets. La première fois que vous l'utiliserez, vous ouvrirez probablement votre base de données immédiatement pour vous assurer que les mises à jour ont lieu.
Type de jeu d'enregistrements Dans l'exemple objRec.Open présenté, vous trouverez les mots 0, 1 et 2 à la fin. Ces nombres représentent différents types de pointeurs. Le type que vous utilisez dépend de l’usage que vous en ferez. Par exemple, si vous n'avez pas besoin de modifier ou d'ajouter des enregistrements, vous pouvez utiliser un type de verrouillage. Lorsque vous envisagez de modifier ou de mettre à jour la base de données, le type que vous choisirez sera différent.
0,1,2 représente en réalité :
adOpenForwardOnly, adLockReadOnly, adCmdTable.
Bien entendu, si vous disposez déjà d'une sauvegarde de adovbs.inc sur votre serveur, vous pouvez également utiliser ces mots directement sans utiliser de chiffres. adovbs.inc contient ces trois constantes et une liste d'autres constantes.