Rappel Caractéristiques d’un fichier ASP Son extension : « *.asp » La balise: <% … %> Son indépendance vis à vis de toute plate–forme, de tout langage de script et de tout navigateur. DESS IIDEE © B. BAH oct.-2000
Rappel Fonctionnement de l’ASP Un script ASP s’exécute lorsqu’un navigateur appelle une page ayant cette extension sur le serveur web. Le serveur lance alors le module ASP et lui transmet le fichier. Le module parcourt le fichier à la recherche de la balise <% … %>. Au cours de cette action, dés que le module ASP rencontre un script encadré par la balise <% … %>, il l’exécute et renvoie ensuite au serveur du code HTML que celui-ci transmet, à son tour, au navigateur. DESS IIDEE © B. BAH oct.-2000
DESS IIDEE © B. BAH oct.-2000
Rappel Le Modèle objets d’ASP L’objet Application : représente le site web c’est à dire l’ensemble des fichiers se trouvant dans le répertoire virtuel ou dans ses sous-répertoires. L’objet Session : représente un utilisateur donné. Il permet de conserver des informations relatives au visiteur d’une page à l’autre tout au long de sa connexion. Il y a donc une session par visiteur. DESS IIDEE © B. BAH oct.-2000
Rappel Le Modèle objets d’ASP L’objet Request : permet de récupérer les données issues d’un formulaire utilisant soit la méthode POST ou GET. Il permet également d’obtenir des informations sur le serveur, sur le navigateur client et de récupérer les cookies stockés sur la machine du visiteur. L’objet Response : Contient la réponse HTTP, c’est à dire l’ensemble des informations à destination du navigateur client; comme par exemple l’écriture d’un cookie sur le disque dur du visiteur ou l’affichage d’une phrase à l’attention de celui-ci. DESS IIDEE © B. BAH oct.-2000
Rappel Le Modèle objets d’ASP L’objet Server : représente le serveur et permet d’instancier et d’utiliser des composants COM(standards ou personnalisés) dans une page ASP. L’objet ASPError : Il prend en charge la gestion des erreur en renvoyant le maximum de renseignements sur les exceptions. C’est une nouveauté d’ASP 3.0. DESS IIDEE © B. BAH oct.-2000
Rappel L’interface d’un objet ASP Objet ASP - Collections - Propriétés - Méthodes DESS IIDEE © B. BAH oct.-2000
Rappel L’interface d’un objet ASP Les collections : Servent à stocker des informations en provenance ou à destination du client. C’est une sorte de tableau à deux colonne: la première stockant le nom d’un contrôle par exemple et la seconde sa valeur. Les propriétés : permettent d’obtenir ou de stocker des valeurs spécifiques. L’objet méthodes : ce sont les procédures et fonctions qui permettent d’accomplir des actions spécifiques. DESS IIDEE © B. BAH oct.-2000
L’objet Request Les collections de l’objet Request La collection Form récupère les données issues d'un formulaire utilisant la méthode POST. Cette collection Contient donc les noms et valeurs des contrôles (zones de saisie, listes de choix, boutons etc.) situés à l'intérieur des balises <Form> et </Form> d'un formulaire. Syntaxes : <% StrNom=Request.Form("NOM") %> <% = Request.Form("NOM") %> DESS IIDEE © B. BAH oct.-2000
L’objet Request Les collections de l’objet Request La collection QueryString, elle, récupère les données issues soit d'un formulaire utilisant la méthode GET ou d’une chaîne de requête de type : http://b-bah/site/forums/ShowMessage.asp?IDMsg=40&IDGrp=3&IDMbre=3 Syntaxes : <% StrNom=Request.QueryString("NOM") %> <% = Request.QueryString("NOM") %> DESS IIDEE © B. BAH oct.-2000
L’objet Request Les collections de l’objet Request La collection Cookies permet de vérifier la présence d'un cookie de votre site sur le disque dur d'un client (sous forme d'un fichier) et d'en récupérer les Valeurs. Syntaxes : <% Variable = Request.Cookies("NomCookie")%> <% Variable = Request.Cookies("NomCookie").("NomClé") %> DESS IIDEE © B. BAH oct.-2000
L’objet Request Les collections de l’objet Request La collection ServerVariables contient les en-têtes HTTP de la requête. Il stocke des informations sur le navigateur, le serveur, l’application et l'utilisateur. L'accès à ces informations est facilité grâce à la syntaxe suivante : <% Request.ServerVariables("nomEnTete") %> DESS IIDEE © B. BAH oct.-2000
Response.Cookies("NomCookie") L’objet Response Les collections de l’objet Response La collection Cookies de l'objet Response permet de stocker des informations dans un fichier sous la forme nom/valeur sur le disque dur d'un client. Syntaxes à utiliser : Lorsqu'on veut placer un cookie simple c'est à dire qui contient une seule paire nom/valeur : Response.Cookies("NomCookie") DESS IIDEE © B. BAH oct.-2000
L’objet Response Les collections de l’objet Response Lorsqu'on veut placer un cookie à valeurs multiples c'est à dire possédant un seul nom mais plusieurs Clés: Exemple: <%Response.Cookies("Utilisateur")("Nom")="nom" Response.Cookies("Utilisateur")("Prenom")="Prenom" Response.Cookies("Utilisateur")("Adresse")="Adresse" Response.Cookies("Utilisateur")(" Email ")="Email" Response.Cookies("Utilisateur").Expires= Date+365 %> DESS IIDEE © B. BAH oct.-2000
L’objet Response Les propriétés de l’objet Response La propriété Buffer est un tampon dans lequel le serveur peut placer les pages HTML générées dynamiquement. L'hôte de script y ajoute les lignes de code HTML au fur et à mesure qu'il les génère. La page HTML n'est envoyé au client que lorsqu'elle aura été complètement construite. A appeler juste après la directives : <% @LANGUAGE="VBSCRIPT" %> <% Response.Buffer=False (ou True) %> DESS IIDEE © B. BAH oct.-2000
Response.Redirect ("NewUser.asp") L’objet Response Les méthodes de l’objet Response La méthode Redirect de l'objet Response permet de rediriger le navigateur vers une autre page. Syntaxe à utiliser : Response.Redirect ("NewUser.asp") La méthode Write de l'objet Response permet d'envoyer au navigateur une chaîne de caractère comme le montre la syntaxe suivante : Response.Write ("La promo <B> 20002001</B> du <I> IIDEE. </I>") DESS IIDEE © B. BAH oct.-2000
L’objet Response Les méthodes de l’objet Response Les méthodes Clear, End et Flush sont utilisées lorsque la propriété Buffer a la valeur True. Response.Clear : efface tout code HTML mis en cache. Response.End : oblige le serveur à mettre fin au traitement d’un script et à renvoyer au client le contenu du tampon. Response.Flush : Sert à renvoyer progressivement le contenu de la mémoire tampon au navigateur. DESS IIDEE © B. BAH oct.-2000
Les objets Application et session DESS IIDEE © B. BAH oct.-2000
Les objets Application et session Les collections de l’objet Application La collection Contents de l'objet Application contient tous instances des objets créées et ajoutées à l'application grâce à la commande Server.CreateObject(). Syntaxe: Valeur=Application.Contents("VarGlobale") Ou Valeur=Application ("VarGlobale") (contents est , en effet, la collection par défaut) DESS IIDEE © B. BAH oct.-2000
Les objets Application et session Les collections de l’objet Application La collection StaticObjects de l'objet Application contient elle, les instances des objets créées avec la balise HTML <OBJECT>. Syntaxe: Valeur=Application.StaticObjects("VarGlobale") DESS IIDEE © B. BAH oct.-2000
Les objets Application et session Les méthodes de l’objet application Les méthodes Lock et UnLock de l'objet Application Permettent respectivement de verrouiller et de déverrouiller les variables globales. La méthode Lock empêche un utilisateur d'accéder à une variable d'application pendant qu'un autre est entrain de la modifier. Alors que UnLock déverrouille les variables pour permettre d'autres utilisateurs de les modifier. (Cf. au fichier global.asa). DESS IIDEE © B. BAH oct.-2000
Les objets Application et session Les collections de l’objet Session L'objet Session Présente les mêmes collections et événements que l'objet Application. La seule différence entre les deux se situe au niveau de leurs portées. Les méthodes de l’objet Session La méthode Abandon de l'objet Session Permet de détruire les variables stockées dans cet objet et de libérer les ressources du serveur. Syntaxe: Session.Abandon DESS IIDEE © B. BAH oct.-2000
Les objets Application et session Le fichier Global.asa Ce fichier doit être unique et placé dans le répertoire racine du site. Il comporte quatre sous-routines qui permettent de traiter tout ce qui vient d'être dit à propos des objets application et session. DESS IIDEE © B. BAH oct.-2000
Les objets Application et session Le fichier Global.asa <SCRIPT Language="VBScript" RUNAT="Server"> Sub Application_OnStart ' définir ici ce qui va se passer au démarre de l'application . END SUB SUB Session_OnStart ' définir ici ce qui va se passer lorsqu'un nouvel utilisateur se connecte ' et démarre une nouvelle session . END SUB SUB Session_OnEnd ' définir ici ce qui va se passer lorsqu'un utilisateur quitte le site. END SUB SUB Application_OnEnd ' définir ici ce qui va se passer lorsqu'on arrête le serveur. END SUB </SCRIPT> DESS IIDEE © B. BAH oct.-2000
Les objets Application et session Fichier d’inclusion : Il est utilisé en général pour insérer dans informations communes partagées par toutes les pages asp (Les contantes ADO par exemple). Syntaxe : <!-- #Include file="adovbs.inc" --> <!-- #Include file=" ../pages/SourceDonnees.asp" --> DESS IIDEE © B. BAH oct.-2000
L’objet Server Les méthodes de l’objet Server La méthode Server.CreateObject permet d'instancier un composant serveur standard (comme ADO, AdRotator, Browser, Capabilities etc.). Exemples de Syntaxe : <% set ObjConnexion=Server.CreateObject("ADODB.Connection") set ObjRecordset=Server.CreateObject("ADODB.Recordset") set ObjRotator=Server.CreateObject(“MSWC.AdRotator") set set ObjPerso=Server.CreateObject(MonObjet.MaClasse) ObjPerso.MaMethoode() %> DESS IIDEE © B. BAH oct.-2000
L’objet Server Les méthodes de l’objet Server La méthode Server.HTMLEncode permet de formater une chaîne de caractère pour qu’elle puisse être affichée au format souhaité(caractères français accentués par exemple). Exemples de Syntaxe : <% TxtEncodé=Server.HTMLEncode(ChaîneAEncoder) %> DESS IIDEE © B. BAH oct.-2000
L’Accès aux bases de données DESS IIDEE © B. BAH oct.-2000
L’accès aux données OLEDB: une stratégie conçue pour offrir un accès universel à toutes les sources de données(relationnelles et non relationnelles). La communication avec une source de données via OLEDB peut se faire par l'intermédiaire d'ADO(ActiveX Data Object) . DESS IIDEE © B. BAH oct.-2000
L’accès aux données DESS IIDEE © B. BAH oct.-2000
Le modèle objet ADO ADO est composé de trois objets principaux comportant chacun une série de proprités: Connection, Command et Recordset. La communication avec une source de données via OLEDB peut se faire par l'intermédiaire d'ADO(ActiveX Data Object) . DESS IIDEE © B. BAH oct.-2000
L’objet Connection Les propriétés de l’objet Connexion La propriété Errors permet de vérifier les erreurs renvoyées par la source de données suite à une défaillance du fournisseur. La propriété ConnectionString contient les informations nécessaire à l’établissement d’une connexion avant son ouverture. DESS IIDEE © B. BAH oct.-2000
L’objet Connection Les propriétés de l’objet Connexion La propriété CursorLocation pour appeler le fournisseur du curseur côté client prenant en charge les mises à jour par lots. Les méthodes de l’objet Connexion Les méthodes Open et Close permettent respectivement d’ouvrir et de fermer la connexion physique à une source de données. DESS IIDEE © B. BAH oct.-2000
L’objet Connection Les méthodes de l’objet Connexion La méthode Execute permet d’exécuter une commande SQL ou une procédure stockée sur la connexion. Elle peut renvoyer un jeu d’enregistrement. Les méthodes BeginTrans, CommitTrans et RollbackTrans permettent de gérer les transactions sur la connexion ouverte. DESS IIDEE © B. BAH oct.-2000
L’objet Command Les méthodes de l’objet Command La méthode CreateParameter crée un objet parameter. La méthode Execute permet d’exécuter une instruction SQL, une requête une requête paramétrées ou une procédure stockée. Elle renvoie, en retour, un jeu d’enregistrement. La méthode Cancel annule la méthode exécute ou open en cours. DESS IIDEE © B. BAH oct.-2000
L’objet Command Les Propriétés de l’objet Command La propriété ActiveConnection permet d’associer l’objet Command à une connexion ouverte. La propriété CommandText définit ou renvoie une valeur de type String contenant une commande pouvant être une instruction SQL, un nom de table, un nom de requête paramétrée ou l’appel d’une procédure stockée. DESS IIDEE © B. BAH oct.-2000
L’objet Command Les Propriétés de l’objet Command La propriété CommandType Indique le type de commande correspondant à celui de la propriété CommandText. La collection Parameters contient l’ensemble des objets Parameter d'un objet Command. La commande suivante permet d’ajouter un objet parameter à la collection parameters : Command.Parameters.Append (objParam) DESS IIDEE © B. BAH oct.-2000
L’objet Parameter Les Propriétés de l’objet Parameter La propriété Type de l’objet Parameter indique le type de données d’un objet parameter. La Propriété Direction de l’objet Parameter indique si ce dernier correspond à un paramètre d'entrée, un paramètre de sortie ou les deux, ou si le paramètre est la valeur de retour d'une procédure stockée. La propriété Value de l’objet Parameter indique la valeur affectée à cet objet. DESS IIDEE © B. BAH oct.-2000
L’objet Recordset L’objet Recordset: représente le jeu d'enregistrements complet obtenu en ouvrant une table ou en exécutant une commande (instruction SQL ou procédure stockées). Il permet l'exploration et la manipulation de données. Les méthodes de l’objet Recordset La méthode AddNeW, Close, Delete, MoveFirst, MoveNext, MoveLast, Open, Update, UpdateBatch DESS IIDEE © B. BAH oct.-2000
L’objet Recordset Les propriété de l’objet Recordset ActiveConnection, EOF, Fields, Pagesize, AbsolutePage. DESS IIDEE © B. BAH oct.-2000
Connexion et manipulation des données Chaînes de connexion pour Access Chaîne de connexion utilisant le pilote ODBC pour Access connstring="DRIVER={Microsoft Access Driver (*.mdb)};"&_ "DBQ=C:\chemin physique\Forum.mdb" Chaîne de connexion utilisant le pilote OLEDB pour Access connstring=" Provider=Microsoft Access.Jet.OLEDB.3.51; Data”& _ “dource=C:\ chemin physique\Forum.mdb" DESS IIDEE © B. BAH oct.-2000
Connexion et manipulation des données Chaînes de connexion SQL Server . Chaîne de connexion utilisant le pilote ODBC pour SQL Server connstring="driver={SQL Server}; server=nom_serveur;uid=login;" &_ " pwd=mot_de_passe; database=NomBase_de_données" Chaîne de connexion utilisant le pilote OLEDB pour SQL Server connstring=" Provider=SQLOLEDB; Data dource="&_ " NomMachine SQL Server; Initial Catalog= NomBase_de_données;"&_ "User ID=NomUtilisateur; Password= mot_de_passe" DESS IIDEE © B. BAH oct.-2000
Connexion et manipulation des données Chaînes de connexion Pour Oracle . Chaîne de connexion utilisant le pilote ODBC pour Oracle connstring = "driver={Microsoft ODBC for Oracle};" &_ "server=Nom_serveur;uid=login;pwd=mot_de_passe;"&_ "database=Nombase_de_données" Chaîne de connexion utilisant le pilote OLEDB pour Oracle ' connstring = "Provider=MSDAORA; Data source=IntanceOracle" & _ "User ID=NomUtilisateur; Password= mot_de_passe" DESS IIDEE © B. BAH oct.-2000
Connexion et manipulation des données Ouverture et fermeture d’une connexion. AdoConnection.Open connstring ‘traitements ADOConnection.Close ADORecordset.Open connstring ‘traitements ADORecordset.Close DESS IIDEE © B. BAH oct.-2000
Objet connection Set ADOConn = Server.CreateObject("ADODB.Connection") 'Création d'une instance ADOConn.Open StrConn 'Ouverture de la connection Set ADORecodset = ADOConn.Execute(SQLQuery) [Ou ADOConn.Execute(SQLQuery)] 'Exécution de la requête et retourne un objet Do While Not ADORecordset.EOF ‘traitements Loop ‘Ferméture et destruction de l’objet ADORecordset.Close Set ADORecordset=Nothing ADOConn.close 'Fermeture et destruction de la connexion Set ADOConn =Nothing DESS IIDEE © B. BAH oct.-2000
Objet Recordset Set ADOConn = Server.CreateObject("ADODB.Connection") 'Création d'une instance ADOConn.Open StrConn 'Ouverture de la connection Set ADORecodset = Server.CreateObject("ADODB.Recordset") ADORecodset.open " SELECT * From table", ADOConn 'Exécution de la requête et retourne un objet Do While Not ADORecordset.EOF ‘traitements Loop ‘Ferméture et destruction de l’objet ADORecordset.Close Set ADORecordset=Nothing ADOConn.close 'Fermeture et destruction de la connexion Set ADOConn =Nothing DESS IIDEE © B. BAH oct.-2000
Objet command Set cmdQuery = Server.CreateObject("ADODB.Command") cmdQuery.ActiveConnection =ADOConn cmdQuery.CommandText = "NomRequete« [Ou cmdQuery.CommandText = “SELECT * FROM NomTable “ ] set parametre = server.CreateObject("ADODB.Parameter") Set parametre = cmdQuery.CreateParameter("ParamIDMembre") parametre.Type = adInteger parametre.Direction = adParamInput parametre.Value = Request.Cookies(" Valeur ") cmdQuery.Parameters.Append parametre Set ADORecordset = cmdQuery.Execute DESS IIDEE © B. BAH oct.-2000
Objet command Do While Not ADORecordset.EOF ‘traitements Loop Ferméture et destruction de l’objet ADORecordset.Close Set ADORecordset=Nothing DESS IIDEE © B. BAH oct.-2000
Objet connection 'Crée et ouvre un objet Connection Set ADOConnection = Server.CreateObject("ADODB.Connection") ADOConnection.Open StrConn 'Crée et ouvre un objet Recordset Set ADORset = Server.CreateObject("ADODB.Recordset") ADORset.ActiveConnection = ADOConnection ADORset.CursorType = adOpenKeyset ADORset.LockType = adLockOptimistic ADORset.Source = "NomTable" ADORset.Open DESS IIDEE © B. BAH oct.-2000
Objet connection ADORset.AddNew ADORset ("Nom") = Request.Form ("Nom") ADORset(" Prenom") = Request.Form (" Prenom") ADORset(" Adresse") = Request.Form (" Adresse") ADORset(" Téléphone") = Request.Form("PhoneNumber") ADORset(" Ville") = Request.Form("Ville") ADORset("Departement") = Request.Form ("Department") ADORset.Update ADORset.MoveFirst ADORset.Close ADOConnection.close DESS IIDEE © B. BAH oct.-2000
L’objet Response La manipulation des données Établire une connexion à une source de données Création d’une chaîne de commande SQL. Exécuter la commande. Si la commande renvoie des lignes, les tocker dans un objet Recordset. L’objet Recordset permet l’ajout, la mise à jour, modification, suppression. DESS IIDEE © B. BAH oct.-2000
L’objet Response La manipulation des données Établire une connexion à une source de données Création d’une chaîne de commande SQL. Exécuter la commande. Si la commande renvoie des lignes, les tocker dans un objet Recordset. L’objet Recordset permet l’ajout, la mise à jour, modification, suppression. DESS IIDEE © B. BAH oct.-2000