La technique ADO
Transcription
La technique ADO
L'Altruiste : Le guide des langages Web - La technique ADO L'Altruiste : Le guide des langages Web La technique ADO Sommaire 1 / Introduction 2 / Les objets ADO 2.1 / L'objet ADO Command 2.2 / L'objet ADO Connection 2.2.1 / Les arguments de ConnectionString 2.3 / L'objet ADO Error 2.4 / L'objet ADO Fields 2.5 / L'objet ADO Parameter 2.6 / L'objet ADO Property 2.7 / L'objet ADO Record 2.8 / L'objet ADO Recordset 2.9 / L'objet ADO Stream 3 / Les collections 3.1 / La collection ADO Errors 3.2 / La collection ADO Fields 3.3 / La collection ADO Parameters 3.4 / La collection ADO Properties 4 / Les types de curseurs 5 / Les constantes ADO 5.1 / Les constantes AffectEnum 5.2 / Les constantes BookmarkEnum 5.3 / Les constantes CommandTypeEnum 5.4 / Les constantes CompareEnum 5.5 / Les constantes ConnectModeEnum 5.6 / Les constante CopyRecordOptionsEnum 5.7 / Les constantes CursorLocationEnum 5.8 / Les constantes CursorOptionEnum 5.9 / Les constantes CursorTypeEnum 5.10 / Les constantes DataTypeEnum 5.11 / Les constantes CursorTypeEnum 5.12 / Les constantes EventReasonEnum 5.13 / Les constantes EventStatusEnum 5.14 / Les constantes ExecuteOptionEnum 5.15 / Les constantes FieldAttributeEnum 5.16 / Les constantes FieldStatusEnum 5.17 / Les constantes FilterGroupEnum 5.18 / La constante GetRowsOptionEnum 5.19 / Les constantes IsolationLevelEnum 5.20 / Les constantes LineSeparatorsEnum 5.21 / Les constantes LockTypeEnum 5.22 / Les constantes MarshalOptionsEnum 5.23 / Les constantes MoveRecordOptionsEnum 5.24 / Les constantes ObjectStateEnum 5.25 / Les constantes ParameterDirectionEnum 5.26 / Les constantes PersistFormatEnum 5.27 / Les constantes PositionEnum 5.28 / Les constantes RecordCreateOptionsEnum 5.29 / Les constantes RecordOpenOptionsEnum 5.30 / Les constantes RecordStatusEnum 5.31 / Les constantes RecordTypeEnum 5.32 / Les constantes ResyncEnum 5.33 / Les constantes SaveOptionsEnum 5.34 / Les constantes SchemaEnum 5.35 / Les constantes SearchDirectionEnum 5.36 / Les constantes SeekEnum 5.37 / Les constantes de Stat Modifié le 10/05/2003 Page 1 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.38 / Les constantes StreamOpenOptionsEnum 5.39 / Les constantes StreamTypeEnum 5.40 / Les constantes StreamWriteEnum 5.41 / La constante StringFormatEnum 6 / Les commanes SQL Modifié le 10/05/2003 Page 2 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 1 / Introduction Les composants ActiveX Data Objects (ADO) permettent d'établir une interaction entre une application Web et des sources de données. Les données représentent principalement le contenu d'un site Internet, et partant, possèdent un intérêt vital auprès des utilisateurs. Dans le cas d'un site de commerce électronique, la parfaite administration des données constitue un enjeu capital dans la réussite de l'entreprise. En effet, il est nécessaire de mettre à jour régulièrement les données par, la modification des produits, l'ajout de nouveaux ou la suppression d'anciens. La gestion d'un catalogue important rend obligatoire l'utilisation d'une ou plusieurs sources centralisant l'ensemble des données, indépendamment de la structure de présentation, basée en général sur le langage HTML. ActiveX Data Objects associé à un langage de script tel que VBScript ou JScript, permettent de construire des applications Web puissantes et interactives, capables de fonctionner avec diverses sources de données, à l'image d'un base de données standards, d'un service d'annuaires ou de courriers électroniques, ou encore d'un système de fichiers. Le modéle d'objets ADO facilite la gestion des données, en les décomposant en de multiples objets et collections. Ainsi, un ensemble d'articles pourrait correspondre à un jeu d'enregistrements (objet Recordset), un article à un enregistrement (objet Record), les caractéristiques de ce-dernier à une collection de champs (collection Fields), une caractéristique à un champ (objet Field), etc.. De même, la connexion à une source de données, l'exécution de commandes, un des paramètres de ces dernières, ou encore l'accès au contenu d'un noeud, se traduisent tous par un objet spécifique, en l'occurrence respectivement, les objets Connection, Command, Parameter et Stream. Une source de données devient ainsi, un ensemble d'objets divers, dont l'accès à chacun est relativement aisé, par l'intermédiaire des composants d'ADO. Proposant des fonctionnalités combinant le meilleur des différentes techniques d'accès aux sources de données comme ODBC (Open DataBase Connectivity), DAO (Data Access Objects) ou RDO (Remote Data Objects), ADO offre un support universel dans l'échange des données (Universal data Access) pour les besoins actuels comme futurs. OLE DB (Object Linking and Embedding DataBase) est une interface directe entre des applications COM (Component Object Model) écrites en C++ ou en Java et des sources de données. Etant un composant COM, ADO ne peut accéder à une source de données que par l'intermédiaire d'OLE DB. Ainsi, une application ASP rédigée en VBScript ou JScript parvient à atteindre une base de données par une première couche spécifique, ADO, qui se charge de traverser l'interface OLE DB pour accéder au but. Par ailleurs, ADO doit faire appel à un fournisseur correspondant au type d'une source de données et si nécessaire à un pilote ODBC afin d'ouvrir une liaison avec la source de données. Le fonctionnement d'ADO sur une plateforme nécessite l'installation du composant MDAC (Microsoft® Data Access Components) et pour tirer pleinement parti de l'ensemble des fonctionnalités, l'installation de Visual Basic For Applications ou Visual Studio ou encore Visual C++. Modifié le 10/05/2003 Page 3 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2 / Les objets ADO Les objets ADO permettent d'accomplir diverses actions sur des bases de données en utilisant un fournisseur OLE DB (Object Linking Embedding DataBase). Chacun des objets ADO peuvent être contenus dans leurs collections correspondantes comme Field ou Error dans leur collection respective Fields et Errors. Sommaire 2.1 / L'objet ADO Command 2.2 / L'objet ADO Connection 2.3 / L'objet ADO Error 2.4 / L'objet ADO Fields 2.5 / L'objet ADO Parameter 2.6 / L'objet ADO Property 2.7 / L'objet ADO Record 2.8 / L'objet ADO Recordset 2.9 / L'objet ADO Stream Modifié le 10/05/2003 Page 4 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.1 / L'objet ADO Command L'objet ADO Command permet d'exécuter diverses commandes sur des sources de données. L'objet Command peut appliquer des requêtes sur une base de données et obtenir en retour des enregistrements (record) dans un jeu d'enregistrements (Recordset). Il est également possible de manipuler la structure d'une base de données par l'intermédiaire de l'objet Command. Le constructeur ci-dessous permet de créer un objet ADO Command. Set Objet_Command = Server.CreateObject("ADODB.Command") 'ou Set Objet_Command = New ADODB.Command Désormais, il devient possible d'appliquer à cet objet ainsi créé, ses collections, propriétés ou méthodes. Objet_Command.Collection | Propriété | Méthode Les Collections Collection Description Parameters représente tous les objets paramètres d'un objet Command. Properties représente toutes les propriétés d'un objet Command Les Propriétés Propriété Description Set obj_Command.ActiveConnection = obj_Connection indique l'appartenance à un objet Connection de l'objet en cours. Objet_Command.CommandStream = "Chaîne de caractères" indique le flux utilisé comme l'entrée pour un objet Command. Objet_Command.CommandText = "Chaîne de caractères" contient le texte d'une commande qui doit être envoyé à un fournisseur. Objet_Command.CommandTimeout = Temps indique le délai à appliquer lors de la tentative d'exécution d'une commande avant de déclencher l'interruption puis la génération d'un message d'erreur. objet_Command.CommandType = CommandTypeEnum indique le type d'un objet Command. objet_Command.Dialect = GUID indique le dialecte des propriétés CommandText ou Commandstream. objet_Command.Name retourne le nom d'un objet. Modifié le 10/05/2003 Page 5 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO objet_Command.NamedParameters = True | False indique si les noms de paramètres devraient être passés au fournisseur. objet_Command.Prepared = True | False indique s'il faut sauvegarder une version compilée d'une commande après l'exécution. objet_Command.State = ObjectStateEnum indique pour tous les objets applicables si l'état de l'objet est ouvert ou fermé. Les Méthodes Méthode Description Objet_Command.Cancel annule l'exécution de l'appel d'une méthode Set Objet_Parameter = Object_Command.CreateParameter(Nom, Type, ParameterDirectionEnum, Taille, Valeur) crée un nouvel objet Parameter avec les propriétés spécifiées. Set recordset = Objet_Command.Execute(Enregistrements_Affectés, Paramètres, Options) 'ou Objet_Command.Execute exécute une requête, un instructions SQL ou une procédure stockée spécifiée dans la propriété CommandText Exemple [voir] <html> <head> <title>Démonstration de Command</title> <script language="VBScript"> Sub Soumission_OnClick() If Len(formulaire.Nom.value) = 0 Then Alert "Veuillez entrer votre nom de famille !" formulaire.Nom.focus Exit Sub ElseIf Len(formulaire.Prenom.value) = 0 Then Alert "Veuillez entrer votre prénom !" formulaire.Prenom.focus Exit Sub ElseIf Len(formulaire.Age.value) = 0 Then Alert "Veuillez entrer votre âge !" formulaire.Age.focus Exit Sub ElseIf Len(formulaire.Qualite.value) = 0 Then Alert "Veuillez entrer votre qualité !" formulaire.Qualite.focus Exit Sub ElseIf Len(formulaire.eMail.value) = 0 Then Alert "Veuillez entrer votre adresse email !" formulaire.eMail.focus Exit Sub ElseIf Len(formulaire.Adresse.value) = 0 Then Alert "Veuillez entrer votre adresse complète !" formulaire.Adresse.focus Exit Sub End If Call formulaire.submit() End Sub </script> </head> <body> <% If Len(Request.Form("Etape")) = 0 Then %> Modifié le 10/05/2003 Page 6 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO <form action="command.asp" method="post" name="formulaire"> <input type="hidden" name="Etape" value="Ajout"> <table> <tr> <td>Nom</td> <td> <input type="text" name="Nom" size="20" value="ANNAIS"> </td> </tr> <tr> <td>Prénom</td> <td> <input type="text" name="Prenom" size="20" value="Angélique"> </td> </tr> <tr> <td>Age</td> <td> <input type="text" name="Age" size="3" value="23"> </td> </tr> <tr> <td>Qualité</td> <td> <input type="text" name="Qualite" size="20" value="Rédacteur"> </td> </tr> <tr> <td>eMail</td> <td> <input type="text" name="eMail" size="20" value="[email protected]"> </td> </tr> <tr> <td>Adresse</td> <td> <input type="text" name="Adresse" size="20" value="155 Avenue Lingenfield 75000 PARIS"> </td> </tr> <tr> <td> <input type="button" name="Soumission" value="Soumettre"> </td> </tr> </table> </form> <% ElseIf Request.Form("Etape") = "Ajout" Then Dim Commande_SQL Commande_SQL = "Insert into Fiche (Nom, Prenom, Age, " & _ "Qualite, eMail, Adresse) Values('" & _ CStr(Request.Form("Nom")) & "','" & _ CStr(Request.Form("Prenom")) & "'," & _ CLng(Request.Form("Age")) & ",'" & _ CStr(Request.Form("Qualite")) & "','" & _ CStr(Request.Form("eMail")) & "','" & _ CStr(Request.Form("Adresse")) & "')" Set obj_Connection = Server.CreateObject("ADODB.Connection") obj_Connection.Open "DSN=personnel" Set obj_Command = Server.CreateObject("ADODB.Command") Set obj_Command.ActiveConnection = obj_Connection obj_Command.CommandText = Commande_SQL obj_Command.CommandType = 1 obj_Command.Execute Response.Write "<p>Les éléments suivants ont été ajoutés à la " & _ "table de données <i>Personnel</i> :</p>" & _ "<b>" & Commande_SQL & "</b>" Set obj_Command = Nothing obj_Connection.Close Set obj_Connection = Nothing Modifié le 10/05/2003 Page 7 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO End If %> </body> </html> Modifié le 10/05/2003 Page 8 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.2 / L'objet ADO Connection L'objet ADO Connection représente un connexion ouverte à une source de données. Objet_Connection.Collection | Méthode | Propriété | Evénement Il n'est pas fondamentalement utile de créer un objet Connection pour ouvrir une connexion sur une base de données puisque automatiquement, une ouverture de cete dernière s'opère implicitement, lors de l'utilisation des objets Command, Recordset, et Record. Outre la connexion à une base de données, l'objet Connection permet de paramètrer précisément des connexions dans le domaine de la sécurité, de la gestion des transactions, du fournisseur OLE DB, etc.. Dépendant des fonctionnalités supportées par le fournisseur, plusieurs collections, méthodes, ou propriétés d'un objet Connection peuvent ne pas être disponibles. Les Collections Collection Description Errors contient tous les objets Error créés en réponse à des erreurs relatives du fournisseur. Properties contient toutes les objets Property pour une instance spécifique d'un objet. Les Propriétés Propriété Description Objet_Connection.Objet_Connection.Attributes retourne une ou plusieurs caractéristiques d'un objet. Objet_Connection.CommandTimeout = Temps indique le délai à appliquer lors de la tentative d'exécution d'une commande avant de déclencher l'interruption puis la génération d'un message d'erreur. Objet_Connection.ConnectionString = "Argument=Valeur..." indique les informations utlisées pour établir une connexion à une source de données. Objet_Connection.ConnectionTimeout = Temps indique le délai de temporisation lors d'une tentative d'établissement d'une connexion avant de déclencher son interruption et la génération d'un message d'erreur. Objet_Connection.CursorLocation = CursorLocationEnum indique la localisation du service de curseur. Objet_Connection.DefaultDatabase = "Base de donnée" indique la base de données par défaut. Objet_Connection.IsolationLevel = IsolationLevelEnum indique le niveau d'isolation d'un objet Connection Objet_Connection.Mode = ConnectModeEnum indique les permissions disponibles pour la modification des données dans les objets Connection, Record ou Stream. Modifié le 10/05/2003 Page 9 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Objet_Connection.Provider indique le nom du fournisseur à utiliser pour un objet Connection. Objet_Connection.State = True | False indique pour tous les objets applicables si l'état de l'objet est ouvert ou fermé. Objet_Connection.Version indique le numéro de version d'ActiveX Data Objects. Les Méthodes Méthode Description Objet_Connection.BeginTrans commence une nouvelle transaction. Objet_Connection.CommitTrans sauvegarde n'importe quels changements et la fin de la transaction courante. Il est égaement possible de commencer une nouvelle transaction. Objet_Connection.RollbackTrans annule n'importe quels changements opérés durant la trasaction courante et termine la transaction. Il peut aussi démarrer une nouvelle transaction. Objet_Connection.Cancel annule l'exécution de la méthode appelée en cours. Objet_Connection.Close ferme un objet ouvert ainsi que tous les objets en dépendant. Set recordset = Objet_Connection.Execute(Enregistrements_Affectés, Paramètres, Options) 'ou Objet_Command.Execute exécute une requête, une instructions SQL, une procédure stockée ou le texte propre au fournisseur spécifié. Objet_Connection.Open Texte_Connexion, ID_Utilisateur, Mot_de_Passe, Options ouvre une connexion à une source de données. Set Objet_Recordset = Objet_Connection.OpenSchema(SchemaEnum, Critères, ID_Schema) obtient les informations en provenance du fournisseur, sur le schéma de la base de données. Les Evénements Evénement Description Objet_Connection.BeginTransComplete Niveau_Transaction, Erreur, Statut, Connexion est appelé après l'exécution de la méthode BeginTrans. Objet_Connection.CommitTransComplete Erreur, Statut, Connexion est appelé après l'exécution de la méthode CommitTrans. Objet_Connection.RollbackTransComplete Erreur, Statut, Connexion est appelé après l'exécution de la méthode RollbackTrans. Modifié le 10/05/2003 Page 10 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Objet_Connection.ConnectComplete Erreur, Statut, Connexion est appelé après le démarrage d'une connexion. Objet_Connection.Disconnect Statut, Connexion est appelé après la fin d'une connexion. Objet_Connection.ExecuteComplete Enregistrement_Affecté, Erreur, Statut, Commande, Recordset, Connexion est appelé après qu'une commande ait fini son exécution. Objet_Connection.InfoMessage Erreur, Statut, Connexion est appelé à chaque fois que se produit un avertissement durant une opération de connexion. Objet_Connection.WillConnect Texte_Connexion, ID_Utilisateur, Mot_de_passe, Options, Statut, Connexion est appelé avant le démarrage d'une connexion. Objet_Connection.WillExecute Source, Type_Curseur, Type_Verrou, Options, Statut, Commande, Recordset, Connexion est appelé juste avant une commande en instance soit exécutée sur une connection. Exemple [voir] <!-- Formulaire de modification --> <html> <head> <script language="VBScript"> Sub Soumission_OnClick() If Len(formulaire.txtNom.value) = 0 Then Alert "Veuillez entrer un Nom !" formulaire.txtNom.focus Exit Sub ElseIf Len(formulaire.txtPrenom.value) = 0 Then Alert "Veuillez entrer un Prénom !" formulaire.txtPrenom.focus Exit Sub ElseIf Len(formulaire.txtAge.value) = 0 Then Alert "Veuillez entrer un âge !" formulaire.txtAge.focus Exit Sub ElseIf Len(formulaire.txtQualite.value) = 0 Then Alert "Veuillez entrer une qualité !" formulaire.txtQualite.focus Exit Sub ElseIf Len(formulaire.txtAdresse.value) = 0 Then Alert "Veuillez entrer une adresse complète !" formulaire.txtAdresse.focus Exit Sub End If Call formulaire.submit() End Sub </script> </head> <body> <% Dim Commande_SQL If Len(Request.Form("Etape")) = 0 Then Set obj_Recordset = Server.CreateObject("ADODB.Recordset") obj_Recordset.Open "Select eMail from Fiche","DSN=Personnel" %> <form action="traitement.asp" method="post" name="form"> <input type="hidden" name="Etape" value="Modif"> <table> <tr> <th>Sélectionner une adresse eMail</th> </tr> <tr> Modifié le 10/05/2003 Page 11 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO <td> <select name="select_eMail"> <% Do While Not obj_Recordset.EOF %> <option value="<%=obj_Recordset("eMail")%>"> <%=obj_Recordset("eMail")%> </option> <% obj_Recordset.MoveNext Loop obj_Recordset.Close Set obj_Recordset = Nothing %> </select> </td> </tr> <tr> <td> <input type="submit" name="Validation" value="Soumettre"> </td> </tr> </table> </form> <% ElseIf Request.Form("Etape") = "Modif" Then Commande_SQL = "Select * from Fiche where eMail = '" & _ CStr(Request.Form("select_eMail")) & "'" Set obj_Recordset = Server.CreateObject("ADODB.Recordset") obj_Recordset.Open strSQL,"DSN=personnel" %> <form action="connection.asp" method="post" name="formulaire"> <input type="hidden" name="txtEmail" value="<%=obj_Recordset("eMail")%>"> <table> <tr> <td>eMail</td> <th style="color: red; font-size:12pt"> <%=obj_Recordset("eMail")%> </th> </tr> <tr> <td>Nom</td> <td> <input type="text" name="txtNom" size="20" value=<%=obj_Recordset("Nom")%>> </td> </tr> <tr> <td>Prenom</td> <td> <input type="text" name="txtPrenom" size="20" value=<%=obj_Recordset("Prenom")%>> </td> </tr> <tr> <td>Age</td> <td> <input type="text" name="txtAge" size="20" value=<%=obj_Recordset("Age")%>> </td> </tr> <tr> <td>Qualité</td> <td> <input type="text" name="txtQualite" size="20" value=<%=obj_Recordset("Qualite")%>> </td> </tr> <tr> <td>Adresse</td> <td> Modifié le 10/05/2003 Page 12 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO <textarea name="txtAdresse" cols="20" rows="3"> <%=obj_Recordset("Adresse")%> </textarea> </td> </tr> <tr> <td> <input type="button" name="Soumission" value="Modifier"> </td> </tr> </table> </form> <% obj_Recordset.Close Set obj_Recordset = Nothing End If %> </body> </html> <!-- Formulaire de traitement traitement.asp --> <html> <body> <% Dim Commande_SQL Dim adCmdText adCmdText = 1 Commande_SQL = "Update Fiche Set " & _ "Nom = '" & _ CStr(Request.Form("txtNom")) & "', " & _ "Prenom = '" & _ CStr(Request.Form("txtPrenom")) & "', " & _ "Age = " & _ CLng(Request.Form("txtAge")) & ", " & _ "Qualite = '" & _ CStr(Request.Form("txtQualite")) & "', " & _ "Adresse = '" & _ CStr(Request.Form("txtAdresse")) & "' " & _ "Where eMail = '" & _ CStr(Request.Form("txtEmail")) & "'" Set obj_Connection = Server.CreateObject("ADODB.Connection") obj_Connection.Open "DSN=personnel" Set obj_Command = Server.CreateObject("ADODB.Command") Set obj_Command.ActiveConnection = obj_Connection obj_Command.CommandText = Commande_SQL obj_Command.CommandType = adCmdText obj_Command.Execute Response.Write "<p>Les éléments suivants ont été modifiés dans " & _ "la table de données <i>Personnel</i> :</p>" & _ "<b>" & Commande_SQL & "</b>" Set obj_Command = Nothing obj_Connection.Close Set obj_Connection = Nothing %> </body> </html> Sommaire 2.2.1 / Les arguments de ConnectionString Modifié le 10/05/2003 Page 13 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.2.1 / Les arguments de ConnectionString Les arguments de la propriété ConnectionString permettent de spécifier plusieurs valeurs à utiliser pour se connecter sur une source de données. Objet_Connection.ConnectionString = _ "Argument=Valeur;...;ArguementN=Valeur" Argument Description Provider= indique le nom d'un fournisseur à utliser pour la connexion vers une source de données. File Name= indique le nom d'un fichier spécifique du fournisseur contenant les préréglages des informations de connexion. Remote Provider= indique le nom d'un fournisseur à utiliser quand une connexion côté client est ouverte. Remote Server= indique le chemin du serveur quand une connexion côté client est ouverte. URL= indique la chaîne de caractères de connexion comme une adresse URL absolue identifiant une ressource, à l'image d'un fichier ou d'un répertoire. Modifié le 10/05/2003 Page 14 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.3 / L'objet ADO Error L'objet ADO Error contient les détails des erreurs d'accès des bases de données qui concerne une unique opération impliquant le fournisseur. Objet_Error.Propriété Chaque objet ADO est susceptible de générer une ou plusieurs erreurs spécifiques au fournisseur. A chaque fois qu'une erreur se produit, un ou plusieurs objets Error sont créés dans la collection Errors de l'objet Connection. Ainsi lorsqu'une opération ADO provoque une autre erreur, la collection Errors est réinitialisée afin d'accueillir le jeu d'erreurs en cours. Certaines propriétés ou méthodes peuvent retourner des messages d'avertissments qui apparaissent dans la collection Errors à l'image des objets Error. Néanmoins, ces messages n'entraînent pas l'arrêt de l'exécution du programme. Les Propriétés Propriété Description Objet_Error.Description = Texte retourne une description textuelle de l'erreur. Objet_Error.HelpContext = ID_Contexte retourne un entier long représentant l'identificateur contextuel pour atteindre un thème dans un fichier d'aide. Objet_Error.HelpFile = Chemin_Fichier_Aide retourne une chaîne de caractères représentant le chemin complet du fichier d'aide. Objet_Error.NativeError = Code_Erreur_Fournisseur retourne un entier long représentant le code d'erreur spécifique au fournisseur. Objet_Error.Number = Numéro_Erreur retourne un entier long représentant le numéro de l'erreur. Objet_Error.Source = Nom_Objet retourne l'identificateur de l'objet ou de l'application qui a provoqué l'erreur. Objet_Error.SQLState = Etat_SQL indique l'état SQL d'un objet Error. Exemple [voir] <html> <head> <% Function Verif_coll_Errors(obj_Connection) Dim obj_Error If Err.Number <> obj_Connection.Errors(0).Number Then Exit Function End If If obj_Connection.Errors.Count > 0 Then For Each obj_Error in obj_Connection.Errors If obj_Error.Number <> 0 Then Response.Write "" & _ "<table border="0" cellpadding=1 cellspacing=2 border=1>" & _ "<tr><th>Propriété</th><th>Valeur</th>" & _ "</tr><tr><th>Numéro</th><td>" & obj_Error.Number & "</td></tr>" & _ "<tr><th>Erreur native</th><td>" & obj_Error.NativeError & "</td></tr>" & _ Modifié le 10/05/2003 Page 15 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO "<tr><th>Etat SQL</th><td>" & obj_Error.SQLState & "</td></tr>" & _ "<tr><th>Source</th><td>" & obj_Error.Source & "</td></tr>" & _ "<tr><th>Description</th><td>" & obj_Error.Description & "</td></tr>" & _ "</table>" Verif_coll_Errors = True End If Next Else Verif_coll_Errors = False End If End Function On Error Resume Next %> </head> <body> <% Dim Ch_SQL Ch_SQL = "SELECT Noms, Prenom, Age, Qualites, eMail, Adresse" _ & "FROM Fiche","DSN=personnel" Set obj_Recordset = Server.CreateObject("ADODB.Recordset") obj_Recordset.Open Ch_SQL If Verif_coll_Errors(obj_Recordset.ActiveConnection) = False Then %> <table border="1" cellpadding="3" align="center"> <tr> <td colspan="6">Fiches signalétiques des personnels</td> </tr> <tr> <td>Nom</td> <td>Prénom</td> <td>Age</td> <td>Qualité</td> <td>eMail</td> <td>Adresse</td> </tr> <% Do While Not obj_Recordset.EOF %> <tr> <td><%=obj_Recordset("Nom")%></td> <td><%=obj_Recordset("Prenom")%></td> <td><%=obj_Recordset("Age")%></td> <td><%=obj_Recordset("Qualite")%></td> <td><%=obj_Recordset("eMail")%></td> <td><%=obj_Recordset("Adresse")%></td> </tr> <% obj_Recordset.MoveNext Loop End If obj_Recordset.Close Set obj_Recordset = Nothing %> </tr> </table> </body> </html> Modifié le 10/05/2003 Page 16 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.4 / L'objet ADO Fields L'objet ADO Fields représente une colonne d'enregistrement possèdant un type commun de données, à l'intérieur d'un jeu d'enregistrement. Objet_Field.Collection | Propriété | Méthode L'utilisation de la propriété Value de l'objet Field permet de fixer ou de retourner les données pour l'enregistrement courant. Objet_Field.Value = Valeur Valeur = Objet_Field.Value Les objets Field sont accessibles à partir d'une collection Fields. Ainsi, une boucle For Each...Next permet d'extraire chaque objet Field puis d'appliquer un traitement particulier au champ. For Each Objet_Field in Objet_Recordset.Fields 'Traitement à appliquer à Objet_Field... Next Les Collections Collection Description Properties représente toutes les propriétés d'un objet Field Les Propriétés Propriété Description Objet_Field.ActualSize = Taille retourne la taille actuelle des données du champ. Objet_Field.Attributes = Entier retourne un entier long indiquant une ou plusieurs caractéristiques de l'objet Field. Objet_Field.DefinedSize = Taille_Définie retourne la taille définie du champ. Objet_Field.Name = Nom retourne le nom d'un champ. Objet_Field.NumericScale = Echelle indique par une valeur octale le nombre de places décimales auxquelles des valeurs numériques seront séparées. Objet_Field.OriginalValue = Valeur_Originale indique la valeur d'un champ qui a existé dans l'enregistrement avant que n'importe quels changements n'aient été accomplis. Objet_Field.Precision = Précision indique par une valeur octale, le nombre maximal de chiffres utilisé pour représenter des valeurs. Objet_Field.Status = FieldStatusEnum indique le statut de l'enregistrement en cours. Modifié le 10/05/2003 Page 17 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Objet_Field.Type = DataTypeEnum indique un type de données DataTypeEnum. Objet_Field.UnderlyingValue = Valeur_Courante indique la valeur courante de l'objet Field de la base de données. Objet_Field.Value = Valeur retourne la valeur du champ en cours. Les Méthodes Méthode Description Objet_Field.AppendChunk Données ajoute des données à un grand texte ou un champ de données binaire. Variable = Objet_Field.GetChunk(Taille) retourne tout ou une portion des contenus d'un grand texte ou un objet Field de données binaires. Exemple [voir] <html> <body> <% Dim Obj_Recordset, Objet_Field Set Obj_Recordset = Server.CreateObject("ADODB.Recordset") obj_Recordset.Open "Select * from Fiche","DSN=personnel" With Obj_Recordset Compteur = .Fields.Count - 1 %> <table border="1" cellpadding="3" align="center"> <tr> <th>Nom</th> <th>Valeur</th> <th>Taille actuelle</th> <th>Taille définie</th> <th>Type</th> </tr> <th> </th> <th>Echelle num</th> <th>Précision</th> <th>Attribut</th> <th>Statut</th> </tr> <% Dim i Do While Not .EOF For i = 0 To Compteur For Each Objet_Field In .Fields Response.Write "<tr><th><i>" & Objet_Field.Name & "</i></th>" Response.Write "<td>" & Objet_Field.Value & "</td>" Response.Write "<td>" & Objet_Field.ActualSize & "</td>" Response.Write "<td>" & Objet_Field.DefinedSize & "</td>" Response.Write "<td>" & Objet_Field.Type & "</td></tr>" Response.Write "<tr><td> </td>" Response.Write "<td>" & Objet_Field.NumericScale & "</td>" Response.Write "<td>" & Objet_Field.Precision & "</td>" Response.Write "<td>" & Objet_Field.Attributes & "</td>" Response.Write "<td>" & Objet_Field.Status & "</td></tr>" Next Next .MoveNext Loop .Close End With Set obj_Recordset = Nothing Modifié le 10/05/2003 Page 18 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO %> </tr> </table> </body> </html> Modifié le 10/05/2003 Page 19 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.5 / L'objet ADO Parameter L'objet ADO Parameter représente un paramètre ou un argument associé à un objet Command dans une requête paramètrée ou une procédure stockée. Set obj_Parameter = Server.CreateObject("ADODB.Parameter") Suite à leur instanciation par la formule ci-dessus, les paramètres peuvent accueillir leurs différentes caractéristiques comme leur nom, leur taille, leur type et en particulier leur valeur. Il est également possible de créer un objet Parameter directement en utilisant la méthode CreateParameter de l'objet Command. Dans ce cas, les arguments de la méthode permettent d'obtenir directement les caractéristiques du paramètre. Set Objet_Parameter = _ Object_Command.CreateParameter(Nom, Type, _ ParameterDirectionEnum, Taille, Valeur) La plupart des fournisseurs supportent les commandes paramétrées. Ces commandes stockent des instructions SQL prédéfinies accessibles à partir des requêtes de la base de données. Ces requêtes paramétrées ou ces procédures stockées comprennent dans leur code différentes variables, dont les valeurs sont récupérées par la propriété Value de l'objet Parameter sur une page Web. CREATE PROCEDURE Nom_Procedure @variable varchar(50) @variable2 INT AS SELECT T1.champ,..., T2.champN FROM Table AS T1 INNER JOIN Table2 AS T2 ON T1.Champ = T2.Champ WHERE T1.ChampX = @variable AND T2.ChampX = @variable2 GO Les Collections Collection Description Properties contient toutes les objets Property pour une instance spécifique d'un objet. Les Propriétés Propriété Description Objet_Parameter.Attributes = Entier retourne un entier long indiquant une ou plusieurs caractéristiques de l'objet Parameter. Objet_Parameter.Direction = ParameterDirectionEnum indiquent si l'objet Parameter représente un paramètre entrée, un paramètre produit, les deux, ou la valeur retournée à partir d'une procédure stockée. Objet_Parameter.Name = Nom retourne le nom d'un paramètre. Objet_Parameter.NumericScale = Echelle indique par une valeur octale le nombre de places décimales auxquelles des valeurs numériques seront séparées. Modifié le 10/05/2003 Page 20 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Objet_Parameter.Precision = Précision indique par une valeur octale, le nombre maximal de chiffres utilisé pour représenter des valeurs. Objet_Parameter.Size = Taille indique la taille maximum en octets ou en caractères d'un objet Parameter. Objet_Field.Type = DataTypeEnum indique un type de données DataTypeEnum. Objet_Parameter.Value = Valeur retourne la valeur de l'objet Parameter. Les Méthodes Méthode Description Objet_Parameter.AppendChunk Données ajoute des données à un paramètre. Exemple [voir] <html> <body> <% Function Verif_coll_Errors(oConn) Dim obj_Error If Err.Number <> oConn.Errors(0).Number Then Exit Function End If If oConn.Errors.Count > 0 Then For Each obj_Error in obj_Connection.Errors If obj_Error.Number <> 0 Then Response.Write "" & _ "<table border="0" cellpadding=1 cellspacing=2 border=1>" & _ "<tr><th>Propriété</th><th>Valeur</th>" & _ "</tr><tr><th>Numéro</th><td>" & obj_Error.Number & "</td></tr>" & _ "<tr><th>Erreur native</th><td>" & obj_Error.NativeError & "</td></tr>" & _ "<tr><th>Etat SQL</th><td>" & obj_Error.SQLState & "</td></tr>" & _ "<tr><th>Source</th><td>" & obj_Error.Source & "</td></tr>" & _ "<tr><th>Description</th><td>" & obj_Error.Description & "</td></tr>" & _ "</table>" Verif_coll_Errors = True End If Next Else Verif_coll_Errors = False End If End Function On Error Resume Next Dim adCmdStoredProc Dim adInteger Dim adVarChar Dim adParamInput adCmdStoredProc = 4 adInteger = 3 adVarChar = 200 adParamInput = 1 Set obj_Connection = Server.CreateObject("ADODB.Connection") obj_Connection.Open "dsn=librairie" Set obj_Command = Server.CreateObject("ADODB.Command") Set obj_Parameter = Server.CreateObject("ADODB.Parameter") Set obj_Recordset = Server.CreateObject("ADODB.Recordset") Modifié le 10/05/2003 Page 21 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Set obj_Command.ActiveConnection = obj_Connection obj_Command.CommandText = "choixlivre" obj_Command.CommandType = adCmdStoredProc obj_Parameter.Name = "Editeur" obj_Parameter.Type = adVarChar obj_Parameter.Direction = adParamInput obj_Parameter.Size = 255 obj_Parameter.Value = "EYROLLES" obj_Command.Parameters.Append obj_Parameter Set obj_Parameter = _ obj_Command.CreateParameter("Categorie",adInteger,adParamInput,,2) obj_Command.Parameters.Append obj_Parameter Set obj_Recordset = obj_Command.Execute If Verif_coll_Errors(obj_Connection) = False Then Compteur = obj_Recordset.Fields.Count - 1 %> <table border="1" cellspacing="1" cellpadding="2"> <tr> <th colspan="5">Sélection de la cétégorie n° <%=obj_Command.Parameters.Item("Categorie").Value%> et de l'éditeur <%=obj_Command.Parameters.Item("Editeur").Value%> </th> </tr> <tr> <th>Livre</th> <th>Collection</th> <th>Editeur</th> <th>Catégorie</th> <th>Prix</th> </tr> <% Do While Not obj_Recordset.EOF %> <tr> <% For i = 0 To Compteur %> <td><%=obj_Recordset.Fields.Item(i)%></td> <% Next %> </tr> <% obj_Recordset.MoveNext Loop End If obj_Recordset.Close Set obj_Recordset = Nothing Set obj_Parameter = Nothing Set obj_Command = Nothing obj_Connection.Close Set obj_Connection = Nothing %> </table> </body> </html> <!-- Requête paramétrée dans les requêtes de la base de données : choixlivre --> PARAMETERS NomEditeur Text ( 255 ), CodeCategorie Long; SELECT l.nom, l.collection, l.Editeur, c.nom, l.euros FROM livre AS l INNER JOIN categorie AS c ON l.clecategorie=c.numcategorie WHERE (((l.editeur)=[NomEditeur]) AND ((c.numcategorie)=[CodeCategorie])) ORDER BY l.nom; Modifié le 10/05/2003 Page 22 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.6 / L'objet ADO Property L'objet ADO Property représente une caracéristique dynamique d'un objet ADO qui est défini par un fournisseur. Un objet ADO possède deux types de propriétés, en l'occurrence programmé et dynamique. Les premières sont celles exécutées dans ADO et sont immédiatement disponible à partir de n'importe quel objet nouvellement créé, en utilisant la syntaxe ci-dessous. Objet.Property Les propriétés programmées n'apparaissent pas comme des objets Property dans un collection Properties. Bien qu'il soit possible de modifier leur valeur, en revanche la modification de leurs caractéristiques est impossible. Objet.Property = Valeur Les secondes sont définies par le fournisseur de données sous-jacent, et apparaissent dans la collection ¨Properties pour l'objet ADO approprié. Les propriétés additionnelles se présentent comme des objets Property de la collection Properties de l'objet Recordset. Les propriétés dynamiques sont disponibles à partir de l'une ou l'autre des expressions suivantes : Objet.Properties(Index) Objet.Properties("Nom") Les Propriétés Propriété Description Objet_Property.Attributes = Entier retourne un entier long indiquant les caractéristiques de la propriété spécifique au fournisseur. Objet_Property.Name = Nom retourne une chaîne de caractères qui identifie la propriété. Objet_Property.Type = DataTypeEnum retourne un entier indiquant le type de données de la propriété. Objet_Property.Value = Valeur retourne un variant correspondant à la valeur de la propriété. Exemple [voir] <html> <body> <% Dim obj_Connection Dim obj_Recordset Dim ch_Source Dim ch_SQL set obj_Connection=server.CreateObject("ADODB.connection") ch_Source = "Provider=Microsoft.Jet.OLEDB.4.0" ch_Source = ch_Source & "; Data Source=C:\Base_donnee\Personnel.mdb" obj_Connection.connectionstring = ch_Source obj_Connection.Open set obj_Recordset = server.CreateObject("ADODB.recordset") ch_SQL = "SELECT Nom, Prenom FROM Fiche;" Modifié le 10/05/2003 Page 23 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO obj_Recordset.Open ch_SQL,obj_Connection Response.Write "<h3>Personnels :</h3>" Do until obj_Recordset.EOF Response.Write "<b>" & obj_Recordset("Nom") & "</b> " _ & obj_Recordset("Prenom") & "<br>" obj_Recordset.MoveNext Loop Response.Write "<h3>Propriétés de l'objet Connection :</h3>" _ & "<table border=1>" _ & "<tr><th>N°</th>" _ & "<th>Type</th>" _ & "<th>Attribut</th>" _ & "<th>Nom</th>" _ & "<th>Valeur</th></tr>" dim i i=0 for each obj_Property in obj_Connection.Properties i=i+1 Response.Write "<tr><td>" & i & "</td>" Response.Write "<td>" & obj_Property.type & "</td>" Response.Write "<td>" & obj_Property.attributes & "</td>" Response.Write "<td>" & obj_Property.name & "</td>" Response.Write "<td>" & obj_Property.value & "</td></tr>" Next Response.Write "</table>" %> </body> </html> Modifié le 10/05/2003 Page 24 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.7 / L'objet ADO Record L'objet ADO Record représente un enregistrement dans une base de données, un fichier ou un répertoire dans un système de fichiers. Set Objet_Record = Server.CreateObject("ADODB.Record") ActiveX Data Objects permet de gérer des enregistrements provenant aussi bien des données structurées, telles que ceux des bases de données, que des données semi-structurées organisées en arborescence et possédant des noeuds à plusieurs niveaux comme dans la cas d'un système de fichiers. L'objet Record, dans cette dernière situation correspond à un noeud unique de l'arborescence, comme un fichier ou un répertoire. Si le noeud contient d'autres répertoires ou fichiers, alors cette collection de noeuds enfants correspond à un jeu d'enregistrements, autrement dit à un objet Recordset. Set Obj_Recordset = Objet_Record.GetChildren D'autre-part, les propriétés d'un noeud enfant sont assimilés à une collection de champs, soit à une collection Fields. Les Collections Collection Description Fields contient une colonne de données avec un type commun. Properties contient toutes les objets Property pour une instance spécifique d'un objet. Les Propriétés Propriété Description Objet_Record.ActiveConnection = Objet_Connection indique l'objet Connection d'appartenance de l'objet en cours. Objet_Record.Mode = ConnectModeEnum indique les autorisations de modification de données de l'objet Record. Objet_Record.ParentURL = Adresse_URL retourne une adresse URL absolue qui pointe l'enregistrement parent de l'objet Record en cours. Objet_Record.RecordType = RecordTypeEnum Objet_Record.Source = Chaîne de caractères retourne la source de données de l'enregistrement en cours. Objet_Record.State = ObjectStateEnum retourne l'état de l'objet Record, c'est-à-dire s'il est ouvert ou fermé. Les Méthodes Méthode Modifié le 10/05/2003 Page 25 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Description Objet_Record.Cancel annule l'exécution de l'appel en attente. Objet_Record.Close ferme l'objet Record ouvert ainsi que tous les objets qui en dépendent. Objet_Record.CopyRecord(Source, Destination, Nom_Utilisateur, Mot_Passe, CopyRecordOptionsEnum, Bool_Asynchrone) copie un fichier ou un répertoire et son contenu vers une destination. Objet_Record.DeleteRecord Source, Bool_Asynchrone supprime l'entité représentée par un enregistrement. Set Obj_Recordset = Objet_Record.GetChildren retourne un objet Recordset dont les lignes représentent les fichiers et les sous-répertoires du répertoire représenté par l'objet Record. Objet_Record.MoveRecord(Source, Destination, Nom_Utilisateur, Mot_Passe, MoveRecordOptionsEnum, Bool_Asynchrone) déplace un fichier ou un répertoire et son contenu vers un destination. Objet_Record.Open Source, ActiveConnection, ConnectModeEnum, RecordCreateOptionsEnum, RecordOpenOptionsEnum, Nom_Utilisateur, Mot_Passe ouvre un objet Record existant ou en crée un nouveau. Exemple [voir] <html> <body> <% Dim Objet_Record, Champ Set Objet_Record= Server.CreateObject("ADODB.Record") Objet_Record.Open "", "URL=http://localhost/repertoire" Response.Write "<table border=1>" For each Champ in Objet_Record.Fields Response.Write "<tr><td>" & Champ.Name & _ "</td><td>" & Champ.Value & _ "</td></tr>" Next Response.Write "</table>" Objet_Record.Close Set Objet_Record = Nothing %> </body> </html> Modifié le 10/05/2003 Page 26 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.8 / L'objet ADO Recordset L'objet ADO Recordset contient l'ensemble des enregistrements d'une base de données ou le résultat d'une requête suite à l'exécution d'une commande. Set obj_Recordset = Server.CreateObject("ADODB.Recordset") Couramment utilisé, l'objet Recordset permet d'accomplir différentes tâches sur un jeu d'enregistrements, comme l'ouverture ou la fermeture de l'objet, mais surtout, l'extraction, l'ajout, la suppression ou la mise à jour des données. Dim Obj_Recordset ' Instanciation de l'objet Set Obj_Recordset = Server.CreateObject("ADODB.Recordset") ' Ouverture Obj_Recordset.Open "SELECT * FROM Table", _ Obj_Connection, _ adOpenKeySet, _ adLockOptimistic Obj_Recordset.Fields("Nom_Champs") = "Valeur du champs" Obj_Recordset.Update ' Mise à jour Obj_Recordset.Close ' Fermeture Quelques unes des fonctions importantes de l'objet Recordset sont, également, d'explorer un jeu d'enregistrements par l'intermédiaire des méthodes MoveNext, MovePrevious, MoveLast, MoveFirst, Move, d'effectuer des recherches par Seek ou Find, ou de tester la position du pointeur d'enregistrement avec les propriétés BOF (Before Of File), EOF (End Of File) ou AbsolutePosition. Do While Not Obj_Recordset.EOF ' Atteindre Fin de Fichier Response.Write Obj_Recordset.Fields("Nom_Champs") Obj_Recordset.MoveNext ' Enregistrement suivant Loop Les Collections Collection Description Fields contient une colonne de données avec un type commun. Properties contient toutes les objets Property pour une instance spécifique d'un objet. Les Propriétés Propriété Description Objet_Recordset.AbsolutePage = PositionEnum retourne la page de l'enregistrement en cours. Objet_Recordset.AbsolutePosition = PositionEnum retourne la position de l'enregistrement en cours. Objet_Command = Objet_Recordset.ActiveCommand retourne l'objet Command qui a créé l'objet Recordset correspondant. Set Objet_Recordset.ActiveConnection = Objet_Connection indique l'objet Connection d'appartenance de l'objet en cours. Modifié le 10/05/2003 Page 27 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Objet_Recordset.BOF = True | False indique que l'enregistrement en cours est positionné avant le premier de l'objet Recordset. Objet_Recordset.Bookmark = Variant_Signet retourne un signet identifiant d'une façon unique l'enregistrement en cours, ou assigne un signet à l'enregistrement en cours. Objet_Recordset.CacheSize = Nombre retourne le nombre d'enregistrements d'un objet Recordset stockés en mémoire cache. Objet_Recordset.CursorLocation = CursorLocationEnum retourne ou détermine la position du moteur de curseur. Objet_Recordset.CursorType = CursorTypeEnum indique le type de curseur à utiliser avec un objet Recordset. Objet_Recordset.DataMember = Chaîne_de_caractères retourne le nom du membre-donnée à extraire de l'objet Recordset défini par la propriété DataSource. Objet_Recordset.DataSource = Objet indique qu'un objet contenant des données doit être assimilé à un objet Recordset. Objet_Recordset.EditMode = EditModeEnum retourne le statut de modification de l'enregistrement en cours. Objet_Recordset.EOF = True | False indique que l'enregistrement en cours a atteint le dernier enregistrement d'un objet Recordset. Objet_Recordset.Filter = Valeur détermine un filtre de données dans un objet Recordset. La valeur peut contenir une chaîne de caractères composée de différentes clauses liées par des opérateurs AND ou OR, un tableau de signets pointant vers des enregistrements ou une constante FilterGroupEnum. Objet_Recordset.Index = Cnaîne de caractères retourne le nom de l'index en cours pour l'objet Recordset. Objet_Recordset.LockType = LockTypeEnum retourne le type de verrouillage des enregistrements lors des modifications. Objet_Recordset.MarshalOptions = MarshalOptionsEnum indique les enregistrement devant être renvoyés au serveur. Objet_Recordset.MaxRecords = Nombre indique le nombre maximal d'enregistrements à retourner à l'objet Recordset pour une même requête. Objet_Recordset.PageCount = Nombre retourne le nombre de pages de données contenues dans l'objet Recordset. Objet_Recordset.PageSize = Nombre retourne le nombre d'enregistrements contenus dans la page de l'objet Recordset. Objet_Recordset.RecordCount = Nombre retourne le nombre en cours des enregistrements présents dans un objet Recordset. Objet_Recordset.Sort = Chaîne de caractères indique un ou plusieurs noms de champs permettant d'effectuer un tri sur un objet Recordset. Modifié le 10/05/2003 Page 28 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Objet_Recordset.Source = Chaîne de caractères retourne la source de données d'un jeu d'enregistrements. Objet_Recordset.State = ObjectStateEnum retourne l'état de l'objet Recordset, c'est-à-dire s'il est ouvert ou fermé. Objet_Recordset.Status = RecordStatusEnum retourne le statut de l'enregistrement en cours en ce qui concerne les mises à jour par lots ou autres opérations globales. Objet_Recordset.StayInSync = True | False indique dans un objet Recordset hiérarchique, si la ligne parent doit changer lorsque l'ensemble des enregistrements enfants sous-jacents change. Les Méthodes Méthode Description Objet_Recordset.AddNew Liste_champs, Valeurs crée un nouvel enregistrement pour un objet Recordset pouvant être mis à jour. Objet_Recordset.Cancel annule l'exécution de l'appel en attente. Objet_Recordset.CancelBatch [AffectEnum] annule une mise à jour par lots en attente. Objet_Recordset.CancelUpdate annule toutes les modifications appliquées à l'enregistrement en cours ou à un nouvel enregistrement avant d'appeler la méthode Update. Objet_Recordset.Clone LockTypeEnum crée un objet Recordset en double à partir d'un objet Recordset existant. Objet_Recordset.Close ferme un objet Recordset ouvert ainsi que tous les objets en dépendant. Objet_Recordset.CompareBookmarks Signet, Signet2 compare deux signets et retourne une indication CompareEnum de leurs valeurs relatives. Objet_Recordset.Delete AffectEnum supprime l'enregistrement en cours ou un groupe d'enregistrements. Objet_Recordset.Find(Critère, Saut_ligne, SearchDirectionEnum, Démarrage) recherche dans un objet Recordset l'enregistrement correspondant aux critères spécifiés en argument. Objet_Recordset.GetRows[(GetRowsOptionEnum, BookmarkEnum, Enregistrements)] extrait plusieurs enregistrements d'un objet Recordset et les retournent dans un tableau. Objet_Recordset.GetString(StringFormatEnum, Nb_Lignes, Délimiteur_Colonnes, Délimiteur_Lignes, Expression_Val_Null) retourne l'objet Recordset sous forme de chaîne de caractères. Objet_Recordset.Move Nb_Enregistrements, BookmarkEnum Modifié le 10/05/2003 Page 29 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO déplace la position de l'enregistrement en cours. Objet_Recordset.MoveFirst déplace l'enregistrement en cours sur le premier enregistrement de l'objet Recordset. Objet_Recordset.MoveLast déplace l'enregistrement en cours sur le dernier enregistrement de l'objet Recordset. Objet_Recordset.MoveNext déplace l'enregistrement en cours sur le prochain enregistrement de l'objet Recordset. Objet_Recordset.MovePrevious déplace l'enregistrement en cours sur le précédent enregistrement de l'objet Recordset. Objet_Recordset.NextRecordset Nb_Enregistrements efface l'objet Recordset en cours et retourne l'objet Recordset suivant. Objet_Recordset.Open Source, ActiveConnection, CursorTypeEnum, LockTypeEnum, Options ouvre un curseur. L'argument Source peut être un objet Command valide, une déclaration SQL, un nom de table, un appel de procédure stocké, un URL, ou le nom d'un fichier ou encore l'objet Stream contenant un objet Recordset stocké avec persistance. L'argument ActiveConnection peut être un nom d'objet Connection valide ou une chaîne de caractères contenant des paramètres de la propriété ConnectionString, Enfin, l'argument Options peut combiner un ou plusieurs CommandTypeEnum ou ExecuteOptionEnum avec l'opérateur de niveau de bit AND. Objet_Recordset.Requery Options exécute une requête permettant de mettre à jour un objet Recordset. L'argument Options est identique à celui ci-dessus. Objet_Recordset.Resync AffectEnum, ResyncEnum actualise les données de l'objet Recordset en cours à partir de la base de données sous-jacentes. Objet_Recordset.Save Destination, PersistFormatEnum sauvegarde l'objet Recordset dans un fichier. L'argument Destination correspond à un chemin complet d'un fichier où l'objet Recordset a été sauvegardé, ou encore une référence vers un objet Stream. Objet_Recordset.Seek Tableau_Valeurs, SeekEnum recherche dans l'index d'un objet Recordset pour rapidement loccaliser la ligne qui correspond aux valeurs spécifiées et déplace la position de la ligne courante vers cette ligne. Objet_Recordset.Supports(CursorOptionEnum) définit si un objet Recordset spécifié prend en charge un type de fonctionnalité particulier. Objet_Recordset.Update Enregistrements, Valeurs sauvegarde des modifications apportées à l'enregistrement en cours d'un objet Recordset. Objet_Recordset.UpdateBatch AffectEnum sauvegarde toutes les mises à jour par lots en attente. Les Evénements Evénement Description Objet_Recordset.EndOfRecordset Plus_Lignes, EventStatusEnum, Recordset est appelé lors d'une tentative de déplacement vers un enregistrement situé au-delà de la fin d'un objet Recordset. Modifié le 10/05/2003 Page 30 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Objet_Recordset.FetchComplete Erreur, EventStatusEnum, Recordset est appelé après que tous les enregistrements dans une opération asynchrone de longue durée ont été extraits. Objet_Recordset.FetchProgress Progression, Progression_Max, EventStatusEnum, Recordset est appelé périodiquement au cours d'une opération asynchraone de longue durée pour indiquer le nombre d'enregistrements extraits. Objet_Recordset.WillChangeField Nb_Fields, Fields, EventStatusEnum, Recordset est appelé avant qu'une opérationen attente ne modifie la valeur d'un ou plusieurs objets Field. Objet_Recordset.FieldChangeComplete Nb_Fields, Fields, Erreur, EventStatusEnum, Recordset est appelé après la modification de la valeur d'un ou plusieurs objets Field. Objet_Recordset.WillChangeRecord EventReasonEnum, Nb_Records, EventStatusEnum, Recordset est appelé avant qu'une opération en attente ne modifie un objet Recordset. Objet_Recordset.RecordChangeComplete EventReasonEnum, Nb_Records, Erreur, EventStatusEnum, Recordset est appelé après qu'un ou plusieurs enregistrements ont été modifiés. Objet_Recordset.WillChangeRecordset EventReasonEnum, EventStatusEnum, Recordset est appelé avant qu'une opération en attente ne modifie l'objet Recorset. Objet_Recordset.RecordsetChangeComplete EventReasonEnum, Erreur, EventStatusEnum, Recordset est appelé après que l'objet Recordset a été modifié. Objet_Recordset.WillMove EventReasonEnum, EventStatusEnum, Recordset est appelé avant que l'opération en attente ne change la position en cours. Objet_Recordset.MoveComplete EventReasonEnum, Erreur, EventStatusEnum, Recordset est appelé après qu'un ou plusieurs en registrements ont été modifiés. Exemple [voir] <html> <body> <% Set obj_Recordset = Server.CreateObject("ADODB.Recordset") obj_Recordset.Open "Select * from Fiche","DSN=personnel" %> <table border="1" cellpadding="3" align="center"> <tr> <td colspan="6">Fiches signalétiques des personnels</td> </tr> <tr> <td>Nom</td> <td>Prénom</td> <td>Age</td> <td>Qualité</td> <td>eMail</td> <td>Adresse</td> </tr> <% Do While Not obj_Recordset.EOF Modifié le 10/05/2003 Page 31 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO %> <tr> <td><%=obj_Recordset("Nom")%></td> <td><%=obj_Recordset("Prenom")%></td> <td><%=obj_Recordset("Age")%></td> <td><%=obj_Recordset("Qualite")%></td> <td><%=obj_Recordset("eMail")%></td> <td><%=obj_Recordset("Adresse")%></td> </tr> <% obj_Recordset.MoveNext Loop obj_Recordset.Close Set obj_Recordset = Nothing %> </tr> </table> </body> </html> Modifié le 10/05/2003 Page 32 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2.9 / L'objet ADO Stream L'objet Stream fournit les moyens de lire, écrire et gérer un flux d'octets. Ce dernier peut être composé de données textuelles ou binaires et n'est limité que dans la taille par les ressources du système. Objet_Stream.Propriété | Méthode Un objet Stream est utilisé pour contenir : les données d'un objet Recordset sauvegardé dans le format XML (eXtensible Markup Language), du texte ou des données binaires compris dans un fichier ou un message, une commande fournie par la propriété CommandStreams de l'objet Command destinée à être exécutée comme une alternative à la propriété Commandtext. Un objet Stream peut également recevoir des résultats provenant d'un fournisseur OLE DB, autre qu'un objet Recordset, comme du XML par exemple. Dans des sources de données semi-structurées comme un système de fichiers ou de courriers électroniques, un enregistrement peut avoir un flux de fichier binaire par défaut associées au contenu d'un fichier ou d'un courrier électronique. Un objet Stream peut être utilisé pour manipuler des champs ou des enregistrements contenant ces flux de données. Un objet Stream peut être obtenu à partir d'une adresse URL pointant vers un objet qui contient des données binaires ou textuelles. Cet objet peut être un document simple, un objet Record représentant un fichier ou un répertoire. Un objet Stream par défaut peut être ouvert depuis un objet Record ou Recordset. Il est possible d'obtenir le flux par défaut associé à un enregistrement lorsque l'objet afférent est ouvert, pour éliminer un aller-retour pour l'ouverture du flux. Les objets Stream, obtenu par instanciation, peuvent être utilisés pour stocker des données au bénéfice d'une application. Différent d'un flux associé à une adresse URL ou du flux par défaut d'un enregistrement, un objet Stream instancié ne possède aucune association avec une source sous-jacente par défaut. Set Objet_Stream = Server.CreateObject("ADODB.Stream") Les Propriétés Propriété Description Objet_Stream.Charset = "jeu_de_caractères" indique le jeu de caractères permettant de convertir le contenu textuel d'un objet Stream. Objet_Stream.EOS = True | False indique par une valeur booléenne si la position courante a atteint la fin du flux (End Of Stream). Objet_Stream.LineSeparator = LineSeparatorEnum indique le caractère utilisé comme séparateur pour un flux textuel. Objet_Stream.Mode = ConnectModeEnum indique les autorisations de modification des données de l'objet Stream. Objet_Stream.Position = Position Modifié le 10/05/2003 Page 33 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO indique par un entier long, la position courante dans l'objet Stream. Objet_Stream.Size = Taille indique par un entier long, la taille de l'objet Stream en octets ou en caractères. Objet_Stream.State = ObjectStateEnum indique si l'objet est dans un état ouvert ou fermé. Objet_Stream.Type = StreamTypeEnum indique le type de données contenues dans l'objet Stream. Les Méthodes Méthode Description Objet_Stream.Cancel annule l'exécution de l'appel en attente. Objet_Stream.Close ferme un objet ouvert ainsi que tous les objets qui en dépendent. Objet_Stream.CopyTo Destination_oStream, Nombre_Caractères copie le nombre de caractères ou d'octets vers un autre objet Stream. Objet_Stream.Flush force l'écriture des données du flux dans l'objet sous-jacent. Objet_Stream.LoadFromFile Fichier charge le contenu d'un fichier existant dans l'objet Stream. Objet_Stream.Open Source, ConnectModeEnum, StreamOpenOptionsEnum, Nom_Utilisateur, Mot_Passe ouvre un objet Stream afin de manipuler le flux de données binaires ou textuelles. Objet_Stream.Read(Nombre_Octets) lit un nombre d'octets spécifiés dans un objet Stream binaire. Objet_Stream.ReadText(Nombre_Caractères) lit un nombre de caractères spécifiés dans un objet Stream textuel. Objet_Stream.SaveToFile Fichier, SaveOptionsEnum sauvegarde le contenu binaire d'un objet Stream ouvert. Objet_Stream.SetEOS place la position courante à la fin du flux. Objet_Stream.SkipLine saute une ligne lors de la lecture d'un objet Stream textuel. Objet_Stream.Stat(StatStgEnum, StatFlag) retourne un entier représentant une information à propos de l'objet Record. Objet_Stream.Write Donnée_binaire écrit des données binaires dans l'objet Stream. Objet_Stream.WriteText Donnée, StreamWriteEnum Modifié le 10/05/2003 Page 34 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO écrit du texte dans un objet Stream. Exemple [voir] <html> <body> <% Dim objet_Stream Dim Select_Fichier Dim adTypeText adTypeText = 2 Select_Fichier = "c:\autoexec.bat" set objet_Stream = Server.CreateObject("ADODB.Stream") objet_Stream.Open objet_Stream.LoadFromFile Select_Fichier objet_Stream.Type = adTypeText Objet_Stream.Charset = "ISO-8859-1" Taille_Fichier = objet_Stream.Size Affiche_Contenu= objet_Stream.ReadText Response.Write "Fichier : " & Select_Fichier & "<br>" Response.Write "Taille : " & Taille_Fichier & " Octets<br>" Response.Write "Contenu : " & Affiche_Contenu objet_Stream.Close set objet_Stream = nothing %> </body> </html> Modifié le 10/05/2003 Page 35 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 3 / Les collections Les collections ADO contiennent chacune d'aucun à plusieurs objets du même type. Toutes ses collections possèdent des propriétés identiques, en l'occurrence Count comptabilisant le nombre d'éléments, et Item indiquant un membre spécifique par un index ou son nom. Il est possible de parcourir les objets d'une collection par l'intermédiaire d'un instruction de boucles For Each...Next. For Each Objet In Collection ' Instructions... Next Sommaire 3.1 / La collection ADO Errors 3.2 / La collection ADO Fields 3.3 / La collection ADO Parameters 3.4 / La collection ADO Properties Modifié le 10/05/2003 Page 36 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 3.1 / La collection ADO Errors La collection ADO Errors contient tous les objets Error créés en réponse à un seul échec relatif au fournisseur. Objet_Connection.Errors.Propriété | Méthode Seul l'objet Connection permet d'accéder à la collection Errors. Bien que paraissant restrictif, il n'est pas obligatoire de faire appel à un objet Connection explicite puisque la propriété ActiveConnection des objets Command, Record ou Recordset autorise l'accès à la collection Errors. Objet.ActiveConnection.Errors Lorsqu'une seconde erreur relative à un autre objet ADO intervient, la collection Errors est réinitialisée et à nouveau remplie par les caractéristiques de la nouvelle erreur. Le fournisseur OLE DB peut également insérer des informations ou des avertissements à l'index zéro de la collection Errors. Les Propriétés Propriété Description Errors.Count indique le nombre d'objets Error d'une collection. Errors.Item(Index) retourne un élément de la collection. Les Méthodes Méthode Description Errors.Clear supprime tous les objet Error de la collection. Errors.Refresh met à jour les objets Error dans la collection afin de reflèter les objets disponibles à partir du fournisseur et propre à ce-dernier. Exemple [voir] <html> <head> <% Function Verif_coll_Errors(obj_Connection) Dim obj_Error If Err.Number <> obj_Connection.Errors(0).Number Then Exit Function End If If obj_Connection.Errors.Count > 0 Then For Each obj_Error in obj_Connection.Errors If obj_Error.Number <> 0 Then Response.Write "" & _ "<table border="0" cellpadding=1 cellspacing=2 border=1>" & _ "<tr><th>Propriété</th><th>Valeur</th>" & _ "</tr><tr><th>Numéro</th><td>" & obj_Error.Number & "</td></tr>" & _ "<tr><th>Erreur native</th><td>" & obj_Error.NativeError & "</td></tr>" & _ "<tr><th>Etat SQL</th><td>" & obj_Error.SQLState & "</td></tr>" & _ "<tr><th>Source</th><td>" & obj_Error.Source & "</td></tr>" & _ "<tr><th>Description</th><td>" & obj_Error.Description & "</td></tr>" & _ Modifié le 10/05/2003 Page 37 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO "</table>" Verif_coll_Errors = True End If Next Else Verif_coll_Errors = False End If End Function On Error Resume Next %> </head> <body> <% Dim Ch_SQL Ch_SQL = "SELECT Noms, Prenom, Age, Qualites, eMail, Adresse" _ & "FROM Fiche","DSN=personnel" Set obj_Recordset = Server.CreateObject("ADODB.Recordset") obj_Recordset.Open Ch_SQL If Verif_coll_Errors(obj_Recordset.ActiveConnection) = False Then %> <table border="1" cellpadding="3" align="center"> <tr> <td colspan="6">Fiches signalétiques des personnels</td> </tr> <tr> <td>Nom</td> <td>Prénom</td> <td>Age</td> <td>Qualité</td> <td>eMail</td> <td>Adresse</td> </tr> <% Do While Not obj_Recordset.EOF %> <tr> <td><%=obj_Recordset("Nom")%></td> <td><%=obj_Recordset("Prenom")%></td> <td><%=obj_Recordset("Age")%></td> <td><%=obj_Recordset("Qualite")%></td> <td><%=obj_Recordset("eMail")%></td> <td><%=obj_Recordset("Adresse")%></td> </tr> <% obj_Recordset.MoveNext Loop End If obj_Recordset.Close Set obj_Recordset = Nothing %> </tr> </table> </body> </html> Modifié le 10/05/2003 Page 38 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 3.2 / La collection ADO Fields La collection ADO Fields contient tous les objets Field correspondant chacun à une colonne d'un jeu d'enregistrements (Recordset) ou d'un seul enregistrement (Record). Set objet_Fields = objet_Recordset.Fields L'extraction des valeurs de champs peut s'effectuer de différentes façons. Cependant, si la position des champs est connue dans la table de données, l'accès par un index reste la méthode la plus performante. objet_Field = obj_Recordset.Fields.Item("Nom_Champ") objet_Field = obj_Recordset.Fields("Nom_Champ") objet_Field = obj_Recordset("Nom_Champ") objet_Field = obj_Recordset.Fields.Item(Index) objet_Field = obj_Recordset.Fields(Index) objet_Field = obj_Recordset(Index) Dans le cas de données structurées comme des bases de données SQL, la colletion Fields contient des enregistrements (objets Field) correspondant à des colonnes de données et contiennent des informations relatives aux colonnes telles que leur type de données, leur taille, leur nom, etc.. Dans le cas de données semi-structurées comme un système de fichiers, la collection Fields correspond à l'ensemble des propriétés de l'objet. Ainsi, chaque propriété à l'image ddu nom, de la taille, des attributs etc. constitue un enregistrement spécifique dans la collection. Les Propriétés Propriété Description Fields.Count indique le nombre d'objets Field d'une collection. Fields.Item(Index) retourne un élément de la collection. Les Méthodes Méthode Description Fields.Append Nom_Field, Type, Taille_Champs, FieldAttributeEnum, Valeur ajoute un objet à une collection. Fields.CancelUpdate annule toutes les modifications apportées à l'enregistrement en cours ou à un nouvel enregistrement avant d'appeler la méthode Update Fields.Delete Field supprime un objet de la collection. Fields.Refresh met à jour les objets d'une collection afin de reflèter les objets disponibles à partir du fournisseur et spécifique à ce-dernier. Fields.Resync ResyncEnum actualise les données de l'objet Recordset en cours à partir de la base de données sous-jacente. Fields.Update Fields, Valeurs Modifié le 10/05/2003 Page 39 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO sauvegarde les modifications apportées à l'enregistrement en cours d'un objet Recordset. Exemple [voir] <html> <body> <% Set obj_Recordset = Server.CreateObject("ADODB.Recordset") obj_Recordset.Open "Select * from Fiche","DSN=personnel" With Obj_Recordset Compteur = .Fields.Count - 1 %> <table border="1" cellpadding="3" align="center"> <tr> <td colspan="7">Fiches signalétiques des personnels</td> </tr> <tr> <td>N°</td> <td>Nom</td> <td>Prénom</td> <td>Age</td> <td>Qualité</td> <td>eMail</td> <td>Adresse</td> </tr> <% Dim i Do While Not .EOF %> <tr> <% For i = 0 To Compteur %> <td><%=.Fields.Item(i)%></td> <% Next %> </tr> <% .MoveNext Loop .Close End With Set obj_Recordset = Nothing %> </tr> </table> </body> </html> Modifié le 10/05/2003 Page 40 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 3.3 / La collection ADO Parameters La collection ADO Parameters contient tous les objets Parameter d'un objet Command. Parameters.Propriété | Méthode Les paramètres sont généralement utilisées avec des procédures stockées dans des bases de données SQL et dans ce cas fonctionnent comme des arguments transmettant leur valeur à une fonction ou une procédure SQL. La création des paramètres passe par l'objet Command associé à sa méthode CreateParameter. Set Objet_Parameter = _ Objet.Command.CreateParameter(Nom, Type, Direction, Taille, Valeur) Ensuite, il ne reste plus qu'à insérer les paramètres ainsi créés dans le collection Parameters par l'intermédiaire de sa méthode Append. Objet_Command.Parameters.Append Objet_parameter L'accès à la valeur d'un paramètre précis peut s'effectuer soit par son nom ou son index à partir de la collection. Valeur = Object_Command.Parameters(Index) Valeur = Object_Command.Parameters("Nom") Enfin, il est également possible de modifier la valeur d'un paramètre de la même façon. Object_Command.Parameters(Index) = Valeur Object_Command.Parameters("Nom") = Valeur L'index de la collection Parameter commençant par la valeur zéro, le premier paramètre est accessible à partir de zéro. Les Propriétés Propriété Description Parameters.Count indique le nombre d'objets Parameter d'une collection. Parameters.Item(Index) retourne un élément de la collection. Les Méthodes Méthode Description Fields.Append Nom_Field, Type, Taille_Champs, FieldAttributeEnum, Valeur ajoute un objet à une collection. Parameters.Delete Nom_Field supprime un objet de la collection. Parameters.Refresh met à jour les objets Parameter dans la collection afin de reflèter les objets disponibles à partir du fournisseur et propre à ce-dernier. Modifié le 10/05/2003 Page 41 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Exemple [voir] <html> <body> <% Function Verif_coll_Errors(oConn) Dim obj_Error If Err.Number <> oConn.Errors(0).Number Then Exit Function End If If oConn.Errors.Count > 0 Then For Each obj_Error in obj_Connection.Errors If obj_Error.Number <> 0 Then Response.Write "" & _ "<table border="0" cellpadding=1 cellspacing=2 border=1>" & _ "<tr><th>Propriété</th><th>Valeur</th>" & _ "</tr><tr><th>Numéro</th><td>" & obj_Error.Number & "</td></tr>" & _ "<tr><th>Erreur native</th><td>" & obj_Error.NativeError & "</td></tr>" & _ "<tr><th>Etat SQL</th><td>" & obj_Error.SQLState & "</td></tr>" & _ "<tr><th>Source</th><td>" & obj_Error.Source & "</td></tr>" & _ "<tr><th>Description</th><td>" & obj_Error.Description & "</td></tr>" & _ "</table>" Verif_coll_Errors = True End If Next Else Verif_coll_Errors = False End If End Function On Error Resume Next Dim adCmdStoredProc Dim adInteger Dim adVarChar Dim adParamInput adCmdStoredProc = 4 adInteger = 3 adVarChar = 200 adParamInput = 1 Set obj_Connection = Server.CreateObject("ADODB.Connection") obj_Connection.Open "dsn=librairie" Set obj_Command = Server.CreateObject("ADODB.Command") Set obj_Parameter = Server.CreateObject("ADODB.Parameter") Set obj_Recordset = Server.CreateObject("ADODB.Recordset") Set obj_Command.ActiveConnection = obj_Connection obj_Command.CommandText = "choixlivre" obj_Command.CommandType = adCmdStoredProc obj_Parameter.Name = "Editeur" obj_Parameter.Type = adVarChar obj_Parameter.Direction = adParamInput obj_Parameter.Size = 255 obj_Parameter.Value = "EYROLLES" obj_Command.Parameters.Append obj_Parameter Set obj_Parameter = _ obj_Command.CreateParameter("Categorie",adInteger,adParamInput,,2) obj_Command.Parameters.Append obj_Parameter Set obj_Recordset = obj_Command.Execute If Verif_coll_Errors(obj_Connection) = False Then Compteur = obj_Recordset.Fields.Count - 1 %> <table border="1" cellspacing="1" cellpadding="2"> <tr> <th colspan="5">Sélection de la cétégorie n° <%=obj_Command.Parameters.Item("Categorie").Value%> Modifié le 10/05/2003 Page 42 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO et de l'éditeur <%=obj_Command.Parameters.Item("Editeur").Value%> </th> </tr> <tr> <th>Livre</th> <th>Collection</th> <th>Editeur</th> <th>Catégorie</th> <th>Prix</th> </tr> <% Do While Not obj_Recordset.EOF %> <tr> <% For i = 0 To Compteur %> <td><%=obj_Recordset.Fields.Item(i)%></td> <% Next %> </tr> <% obj_Recordset.MoveNext Loop End If obj_Recordset.Close Set obj_Recordset = Nothing Set obj_Parameter = Nothing Set obj_Command = Nothing obj_Connection.Close Set obj_Connection = Nothing %> </table> </body> </html> <!-- Requête paramétrée dans les requêtes de la base de données : choixlivre --> PARAMETERS NomEditeur Text ( 255 ), CodeCategorie Long; SELECT l.nom, l.collection, l.Editeur, c.nom, l.euros FROM livre AS l INNER JOIN categorie AS c ON l.clecategorie=c.numcategorie WHERE (((l.editeur)=[NomEditeur]) AND ((c.numcategorie)=[CodeCategorie])) ORDER BY l.nom; Modifié le 10/05/2003 Page 43 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 3.4 / La collection ADO Properties La collection ADO Properties contient tous les objets Property d'une instance d'objet. Properties.Propriété | Méthode Les objets ADO, Connection, Command, Recordset, Record, et Field possèdent une collection Properties constituée d'objets Property,. Chacun de ces-derniers correspond à une caractéristique de l'objet ADO, spécifique au fournisseur. ADO fonctionnant avec différents types de sources de données, la collection Properties devient dynamique, puisque chacun de ses objets Property sont susceptibles de varier selon le fournisseur OLE DB sollicité. Les propriétés dynamiques sont disponibles à partir de l'une ou l'autre des expressions suivantes : Objet.Properties(Index) Objet.Properties("Nom") Les Propriétés Propriété Description Properties.Count indique le nombre d'objets Property d'une collection. Properties.Item(Index) retourne un élément de la collection. Les Méthodes Méthode Description Properties.Refresh met à jour les objets Property dans la collection afin de reflèter les objets disponibles à partir du fournisseur et propre à ce-dernier. Exemple [voir] <html> <body> <% Dim obj_Connection Dim obj_Recordset Dim ch_Source Dim ch_SQL set obj_Connection=server.CreateObject("ADODB.connection") ch_Source = "Provider=Microsoft.Jet.OLEDB.4.0" ch_Source = ch_Source & "; Data Source=C:\Base_donnee\Personnel.mdb" obj_Connection.connectionstring = ch_Source obj_Connection.Open set obj_Recordset = server.CreateObject("ADODB.recordset") ch_SQL = "SELECT Nom, Prenom FROM Fiche;" obj_Recordset.Open ch_SQL,obj_Connection Response.Write "<h3>Personnels :</h3>" Do until obj_Recordset.EOF Response.Write "<b>" & obj_Recordset("Nom") & "</b> " _ & obj_Recordset("Prenom") & "<br>" obj_Recordset.MoveNext Loop Modifié le 10/05/2003 Page 44 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO Response.Write "<h3>Propriétés de l'objet Connection :</h3>" _ & "<table border=1>" _ & "<tr><th>N°</th>" _ & "<th>Type</th>" _ & "<th>Attribut</th>" _ & "<th>Nom</th>" _ & "<th>Valeur</th></tr>" dim i i=0 for each obj_Property in obj_Connection.Properties i=i+1 Response.Write "<tr><td>" & i & "</td>" Response.Write "<td>" & obj_Property.type & "</td>" Response.Write "<td>" & obj_Property.attributes & "</td>" Response.Write "<td>" & obj_Property.name & "</td>" Response.Write "<td>" & obj_Property.value & "</td></tr>" Next Response.Write "</table>" %> </body> </html> Modifié le 10/05/2003 Page 45 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 4 / Les types de curseurs Un curseur représente un moyen de déplacer un pointeur, d'un enregistrement à un autre dans un objet Recordset. ADO définit quatre types de curseurs, dont les principales différences résident d'une part, dans le mode de déplacement aussi bien en avant qu'en arrière, et d'autre part dans la visibilité ou l'occultation des jeux d'enregistrements sur lesquels des actions ont été opérés, pour les autres utilisateurs. Type Constante Description adOpenDynamic (1) Dynamic permet de rendre visible les ajouts, les changements et les suppressions aux autres utilisateurs, et également tous les modes de déplacement à l'intérieur d'un objet Recordset ne dépendant pas de signets. adOpenKeyset (2) Keyset se comporte comme un curseur dynamique, hormis qu'il empêche de rendre visible les enregistrements ajoutés par des utilisateurs, et empêche l'accès aux enregistrements que d'autres utilisateurs suppriment. Les données modifiées par d'autres utilisateurs restent toujours visibles. Il permet tous les modes de mouvement à l'intérieur d'un jeu d'enregistrements. adOpenStatic (3) Static fournit une copie statique d'un jeu d'enregistrements utilisé pour rechercher des données ou générer des rapports. Tous les types de mouvement sont autorisés à l'intérieur d'un objet Recordset. Ajout, modification et suppression par d'autres utilisateurs restent toujours invisibles. Il est le seul type de curseur autorisé lors de l'ouverture d'un objet Recordset côté-client. adOpenForwardOnly (4) Forward-only permet seulement un défilement vers l'avant à l'intérieur d'un objet Recordset. Les ajouts, les modifications ou les suppressions par d'autres utilisateurs ne restent pas visibles. Il améliore les performances dans des situations où il est nécessaire d'effectuer un unique passage à l'intérieur d'un objet Recordset. Il faut choisir le type de curseur par l'intermédiaire de la propriété CursorType avant l'ouverture de l'objet Recordset, ou de la méthode Open en passant un argument CursorType. Plusieurs fournisseurs ne supportent pas tous les types de curseurs. Par défaut, ADO utilise le type de curseur forward-only en principe reconnu par tous. Modifié le 10/05/2003 Page 46 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5 / Les constantes ADO Les constantes permettent de définir différentes caractéristiques prédéfinies pour les méthodes et propriétés des objets ADO. Sommaire 5.1 / Les constantes AffectEnum 5.2 / Les constantes BookmarkEnum 5.3 / Les constantes CommandTypeEnum 5.4 / Les constantes CompareEnum 5.5 / Les constantes ConnectModeEnum 5.6 / Les constante CopyRecordOptionsEnum 5.7 / Les constantes CursorLocationEnum 5.8 / Les constantes CursorOptionEnum 5.9 / Les constantes CursorTypeEnum 5.10 / Les constantes DataTypeEnum 5.11 / Les constantes CursorTypeEnum 5.12 / Les constantes EventReasonEnum 5.13 / Les constantes EventStatusEnum 5.14 / Les constantes ExecuteOptionEnum 5.15 / Les constantes FieldAttributeEnum 5.16 / Les constantes FieldStatusEnum 5.17 / Les constantes FilterGroupEnum 5.18 / La constante GetRowsOptionEnum 5.19 / Les constantes IsolationLevelEnum 5.20 / Les constantes LineSeparatorsEnum 5.21 / Les constantes LockTypeEnum 5.22 / Les constantes MarshalOptionsEnum 5.23 / Les constantes MoveRecordOptionsEnum 5.24 / Les constantes ObjectStateEnum 5.25 / Les constantes ParameterDirectionEnum 5.26 / Les constantes PersistFormatEnum 5.27 / Les constantes PositionEnum 5.28 / Les constantes RecordCreateOptionsEnum 5.29 / Les constantes RecordOpenOptionsEnum 5.30 / Les constantes RecordStatusEnum 5.31 / Les constantes RecordTypeEnum 5.32 / Les constantes ResyncEnum 5.33 / Les constantes SaveOptionsEnum 5.34 / Les constantes SchemaEnum 5.35 / Les constantes SearchDirectionEnum 5.36 / Les constantes SeekEnum 5.37 / Les constantes de Stat 5.38 / Les constantes StreamOpenOptionsEnum 5.39 / Les constantes StreamTypeEnum 5.40 / Les constantes StreamWriteEnum 5.41 / La constante StringFormatEnum Modifié le 10/05/2003 Page 47 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.1 / Les constantes AffectEnum Les constantes AffectEnum indique quels enregistrements sont affectés par une opération. Objet_Recordset.CancelBatch AffectEnum Constante Valeur 3 affecte tous les enregistrements s'il n'y a aucun filtre appliqué à l'objet Recordset, si la propriété Filter n'est pas fixée à un critère de chaîne de caractères, alors l'opération affecte tous les enregistrements visibles dans le chapitre courant. Si la propriété Filter a un membre des constantes FilterGroupEnum ou un tableau de signets, alors l'opération affecterait toutes les lignes de l'objet Recordset. 4 affecte tous les enregistrements dans tous les chapitres de mêmes parents de l'objet Recordset incluant ceux non-visibles via n'importe quel propriété Filter qui est couramment appliqué. 1 affecte seulement l'enregistrement courant. 2 affecte seulement les enregistrements qui satisfont le paramètrage courant de la propriété Filter. Il faut fixer la propriété Filter à une valeur FilterGroupEnum ou un tableau de signets pour utiliser cette option. adAffectAll adAffectAllChapters adAffectCurrent adAffectGroup Modifié le 10/05/2003 Description Page 48 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.2 / Les constantes BookmarkEnum Les constantes BookmarkEnum spécifient un signet indiquant où l'opération doit débuter. Objet_Recordset.Move Nb_Enregistrements, BookmarkEnum Constante Valeur adBookmarkCurrent 0 Description démarre à partir de l'enregistrement courant. adBookmarkFirst 1 démarre à partir du premier enregistrement. adBookmarkLast 2 démarre à partir du dernier enregistrement. Modifié le 10/05/2003 Page 49 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.3 / Les constantes CommandTypeEnum Les constantes CommandTypeEnum sont des valeurs représentant comment un argument pourrait être interprété. Object_Command.CommandType = CommandTypeEnum Constante Valeur Description adCmdUnspecified -1 ne peut spécifier l'argument de type de commande. adCmdText 1 évalue CommandText comme une définition textuelle d'une commande ou d'un appel d'une procédure stockée. adCmdTable 2 évalue CommandText comme une table de noms dont les colonnes sont toutes retournées par une requête SQL générée intérieurement. adCmdStoredProc 4 évalue CommandText comme une procédure de nom stockée. adCmdUnknown 8 indique, par défaut, que le type de la commande dans la propriété CommandText n'est pas connue. adCmdFile 256 évalue CommandText comme le nom de fichier d'un jeu d'enregistrements stockés avec persistance. adCmdTableDirect 512 évalue CommandText comme un nom de table dont les colonnes sont toutes retournées. Modifié le 10/05/2003 Page 50 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.4 / Les constantes CompareEnum Les constantes CompareEnum indique la position relative de deux enregistrements par leur signet. Objet_Recordset.CompareBookmarks Signet, Signet2 = _ CompareEnum Constante Valeur Description adCompareEqual 1 indique que les signets sont égaux. adCompareGreaterThan 2 indique que le premier signet est après le second. adCompareLessThan 0 indique que le premier signet est avant le second. adCompareNotComparable 4 adCompareNotEqual Modifié le 10/05/2003 3 indique que les signets ne peuvent être comparés. indique que les signets ne sont pas égaux et non ordonnés. Page 51 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.5 / Les constantes ConnectModeEnum Les constantes ConnectModeEnum indique les permissions disponibles pour la modification des données dans un objet Connection, pour l'ouverture d'un enregistrement Record, ou pour la spécification des valeurs pour la propriété Mode des objets Record et Stream. Objet_Connection.Mode = ConnectModeEnum Constante Valeur Description adModeRead 1 indique des permissions en lecture seule. adModeReadWrite 3 indique les permissions le lecture et écriture. adModeRecursive utilisé en conjonction avec les autres valeurs ShareDeny (adModeShareDenyNone, adModeShareDenyWrite, ou 0x400000 adModeShareDenyRead) pour propager les restrictions de partage à tous les sous-enregistrements de l'objet Record courant. Il n'a pas d'effet si l'enregistrement ne possède pas d'enfants. adModeShareDenyNone 16 autorise les personnes à ouvrir une connexion avec n'importe quelles permissions. Allows others to open a connection with any permissions. Ni l'accès à la lecture ou à l'écriture ne peuvent être dénié aux personnes. adModeShareDenyRead 4 empêche les personnes d'ouvrir une connexion avec les permissions de lecture. adModeShareDenyWrite 8 empêche les personnes d'ouvrir une connexion avec les permissions de écriture. adModeShareExclusive 12 emêche les personnes d'ouvrir une connexion. adModeUnknown 0 par défaut, indique que les permissions n'ont pas encore été ou ne peuvent être déterminées. adModeWrite 2 indique des êrmissions en écriture seule. Modifié le 10/05/2003 Page 52 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.6 / Les constante CopyRecordOptionsEnum Les constante CopyRecordOptionsEnum indiquent le comportement de la méthode CopyRecord. Objet_Record.CopyRecord CopyRecordOptionsEnum Constante Valeur Description 4 indique que la fournisseur tente de simuler la copie utilisant les opérations de téléchargement si cette méthode échoue suite à une destination sur un différent serveur, ou est servi par un différent fournisseur que la source. adCopyNonRecursive 2 copie le répertoire courant, mais aucun des ses sous-répertoires, vers la destination. L'opération de copie n'est pas récursive. adCopyOverWrite 1 recopie le fichier ou le répertoire si la destination pointe vers un dichier ou répertoire existant. -1 par défaut, exécute l'opération de copie. L'opération échoue si le fichier ou le répertoire de destination existe déjà et l'opération copie récursivement. adCopyAllowEmulation adCopyUnspecified Modifié le 10/05/2003 Page 53 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.7 / Les constantes CursorLocationEnum Les constantes CursorLocationEnum permettent de spécifier la localisation du service de curseur. Objet_Connection.CursorLocation = CursorLocationEnum Constante Valeur Description adUseClient 3 utlise les curseurs du côté client fournis par une librairie de curseurs locale. adUseNone 1 n'utilise pas de services de curseurs. adUseServer 2 Modifié le 10/05/2003 par défaut, utilise les données du fournisseur ou les pilotes de curseurs fournis. Page 54 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.8 / Les constantes CursorOptionEnum Les constantes CursorOptionEnum spécifient quelle fonctionnalité, la méthode Supports doit évaluer. Objet_Recordset.Supports(CursorOptionEnum) Constante adAddNew Valeur Description supporte la méthode AddNew pour ajouter de nuveaux 0x1000400 enregistrements. adApproxPosition 0x4000 supporte les propriétés AbsolutePosition et AbsolutePage. adBookmark 0x2000 supporte la propriété Bookmark pour obtenir des accès aux enregistrements spécifiques. adDelete 0x1000800 supporte la méthode Delete pour supprimer des enregistrements. adFind 0x80000 supporte la méthode Find pour localiser une ligne dans un objet Recordset. adHoldRecords 0x100 retrouve plusieurs enregistrements ou modifie la prochaine position sans exécuter tous les changements en cours. adIndex 0x100000 supporte la propriété Index pour nommer un index. 0x200 supporte les méthodes MoveFirst, MovePrevious et Move ou GetRows pour déplacer la position de l'enregistrement courant en arrière sans demander des signets. adNotify 0x40000 indique que le fournisseur de données sous-jacent supporte des notifications. adResync 0x20000 supporte la méthode Resync pour mettre à jour le curseur avec les données qui restent visibles dans la base de données sous-jacente. adSeek 0x200000 supporte la méthode Seek pour localiser une ligne dans un objet Recordset. adUpdate 0x1008000 supporte la méthode Update pour modifier les données existantes. adUpdateBatch 0x10000 adMovePrevious Modifié le 10/05/2003 supporte les méthodes UpdateBatch et CancelBatch pour envoyer des groupes de changements au fournisseur. Page 55 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.9 / Les constantes CursorTypeEnum Les constantes EditModeEnum spécifient les positions d'édition d'un enregistrement. Objet_Recordset.EditMode = EditModeEnum Constante adEditNone Valeur 0 Description indique que'aucune opération d'édition n'est en cours d'exécution. adEditInProgress 1 indique que les données dans l'enregistrement courant a été modifié mais pas sauvegardé. adEditAdd 2 indique que la méthode AddNew a été appelée et l'enregistrement courant dans la copie temporaire est un nouvel enregistrement qui n'a pas été sauvegardé dans la base de données. 4 indique que l'enregistrement courant a été supprimé. adEditDelete Modifié le 10/05/2003 Page 56 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.10 / Les constantes DataTypeEnum Les constantes DataTypeEnum spécifient le type de données des objets Field, Parameter ou Property. Objet_Field.Type = DataTypeEnum Constante Valeur Description AdArray indique une valeur indicatrice toujours combinée avec une autre 0x2000 constante de type de données qui indique un tableau de cette autre type de données. adBigInt 20 indique un entier signé sur huit octets (DBTYPE_I8). adBinary 128 indique une valeur binaire (DBTYPE_BYTES). adBoolean 11 indique une valeur booléenne (DBTYPE_BOOL). adBSTR 8 indique une chaîne de caractères Unicode null-terminated (DBTYPE_BSTR). adChapter 136 indique une valeur chapitre sur quatre octets qui identifie les lognes dans un jeu de lignes enfant (DBTYPE_HCHAPTER). adChar 129 indique une valeur de chaîne de caractères (DBTYPE_STR). adCurrency 6 indique une valeur monétaire. adDate 7 indique une valeur de datation (DBTYPE_DATE). adDBDate 133 indique une valeur de datation (yyyymmdd) (DBTYPE_DBDATE). adDBTime 134 indique une valeur horaire (hhmmss) (DBTYPE_DBTIME). adDBTimeStamp 135 indique un type de date/heure stamp (yyyymmddhhmmss) (DBTYPE_DBTIMESTAMP). adDecimal 14 indique une valeur numérique exacte d'une précision et d'une échelle fixée (DBTYPE_DECIMAL). adDouble 5 indique une valeur à virgule flottante avec double précision (DBTYPE_R8). adEmpty 0 ne spécifie pas de valeur (DBTYPE_EMPTY). adError 10 indique un code d'erreur 32 bit (DBTYPE_ERROR). 64 indique une valeur de 64 bit représentant le nombre de 100 nanosecondes d'intervalle depuis le 1er janvier 1601 (DBTYPE_FILETIME). adGUID 72 indique un identificateur unique globalement (GUID) (DBTYPE_GUID). adIDispatch 9 indique un pointeur vers une interface IDispatch sur un objet COM (DBTYPE_IDISPATCH). adInteger 3 indique un entier signé sur quatre octets (DBTYPE_I4). adIUnknown 13 indique un pointeur vers une interface IUnknown sur un objet COM (DBTYPE_IUNKNOWN). adLongVarBinary 205 indique une valeur binaire longue. adLongVarChar 201 indique une valeur longue de chaîne de caractères. adLongVarWChar 203 indique une valeur de chaîne de caractères Unicode null-terminated. adNumeric 131 indique une valeur numérique exacte d'une précision et d'une échelle fixées (DBTYPE_NUMERIC). adPropVariant 138 indique un Automation PROPVARIANT (DBTYPE_PROP_VARIANT). adFileTime Modifié le 10/05/2003 Page 57 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO adSingle 4 indique une valeur à virgule flottante à précision simple (DBTYPE_R4). adSmallInt 2 indique un entier signé sur deux octets (DBTYPE_I2). adTinyInt 16 indique un entier signé sur un octet (DBTYPE_I1). adUnsignedBigInt 21 indique un entier non-signé sur huit octets (DBTYPE_UI8). adUnsignedInt 19 indique un entier non-signé sur quatre octets (DBTYPE_UI4). adUnsignedSmallInt 18 indique un entier non-signé sur deux octets (DBTYPE_UI2). adUnsignedTinyInt 17 indique un entier non-signé sur un octets (DBTYPE_UI1). adUserDefined 132 indique une variable définie par l'utilisateur (DBTYPE_UDT). adVarBinary 204 indique une valeur binaire (objet Parameter seulement). adVarChar 200 indique une valeur de chaîne de carctères (Objet Parameter seulement). adVariant 12 indique un variant Automation (DBTYPE_VARIANT). adVarNumeric 139 indique une valeur numérique (objet Parameter seulement). adVarWChar 202 indique une chaîne de caractères Unicode null-terminated. adWChar 130 indique une chaîne de caractères Unicode null-terminated. Modifié le 10/05/2003 Page 58 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.11 / Les constantes CursorTypeEnum Les constantes EditModeEnum spécifient les positions d'édition d'un enregistrement. Objet_Recordset.EditMode = EditModeEnum Constante adEditNone Valeur 0 Description indique que'aucune opération d'édition n'est en cours d'exécution. adEditInProgress 1 indique que les données dans l'enregistrement courant a été modifié mais pas sauvegardé. adEditAdd 2 indique que la méthode AddNew a été appelée et l'enregistrement courant dans la copie temporaire est un nouvel enregistrement qui n'a pas été sauvegardé dans la base de données. 4 indique que l'enregistrement courant a été supprimé. adEditDelete Modifié le 10/05/2003 Page 59 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.12 / Les constantes EventReasonEnum Les constantes EventReasonEnum spécifient la raison qui a amené un événement à se produire. Objet_Recordset.RecordChangeComplete EventReasonEnum, Nb_Records, Erreur, EventStatusEnum, Recordset Constante Valeur Description adRsnAddNew 1 indique qu'une opération a ajouté un nouvel enregistrement. adRsnClose 9 indique qu'une opération a fermé un objet Recordset. adRsnDelete 2 indique qu'une opération a supprimé un enregistrement. adRsnFirstChange 11 indique qu'une opération fait la première modification sur un enregistrement. adRsnMove 10 indique qu'une opération a déplacé le pointeur d'enregistrement à l'intérieur d'un objet Recordset. adRsnMoveFirst 12 indique qu'une opération a déplacé le pointeur d'enregistrement au premier enregistrement dans l'objet Recordset. adRsnMoveLast 15 indique qu'une opération a déplacé le pointeur d'enregistrement au dernier enregistrement dans l'objet Recordset. adRsnMoveNext 13 indique qu'une opération a déplacé le pointeur d'enregistrement au prochain enregistrement dans l'objet Recordset. adRsnMovePrevious 14 indique qu'une opération a déplacé le pointeur d'enregistrement au précédent enregistrement dans l'objet Recordset. adRsnRequery 7 indique qu'une opération a demandé l'objet Recordset. adRsnResynch 8 indique qu'une opération a resynchronisé l'objet Recordset avec la base de données. adRsnUndoAddNew 5 indique qu'une opération a inversé l'ajout d'un nouvel enregistrement. adRsnUndoDelete 6 indique qu'une opération a inversé la suppression d'un enregistrement. adRsnUndoUpdate 4 indique qu'une opération a inversé la mise à jour d'un enregistrement. adRsnUpdate 3 indique qu'une opération a mis à jour un enregistrement existant. Modifié le 10/05/2003 Page 60 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.13 / Les constantes EventStatusEnum Les constantes EventStatusEnum spécifient le statut courant de l'exécution d'un événement. Objet_Recordset.EndOfRecordset More Data, _ EventStatusEnum, Recordset Constante Valeur Description adStatusCancel 4 demande l'annulation de l'opération qui a provoqué l'événement survenu. adStatusCantDeny 3 indique que l'opération ne peut demander l'annulation de l'opération en cours. adStatusErrorsOccurred 2 adStatusOK 1 adStatusUnwantedEvent 5 Modifié le 10/05/2003 indique que l'opération qui a provoqué l'événement, a échoué en raison d'une ou plusieurs erreurs. indique que l'opération qui a provoqué l'événement, a été réussie. empêche des notification ultérieures avant que la méthode d'événement ait fini son exécution. Page 61 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.14 / Les constantes ExecuteOptionEnum Les constantes ExecuteOptionEnum spécifie comment un fournisseur devrait exécuter une commande. Objet_Recordset.Open Source, ActiveConnection, _ CursorTypeEnum, LockTypeEnum, ExecuteOptionEnum Constante adAsyncExecute adAsyncFetch Valeur 0x10 indique que la commande doit s'exécuter d'une manière asynchrone. Cette valeur ne peut être combinée avec la valeur adCmdTableDirect des constantes CommandTypeEnum.+6 0x20 indique que les lignes restantes après la quantité initiale spécifiée dans la propriété CacheSize devrait être retrouvé nonsimultanément. 0x40 indique que la principale unité d'exécution ne se bloque jamais tant que l'opération de récupération est en cours. Si les lignes demandées n'ont pas été retrouvées, la ligne courante se déplace automatiquement à la fin du ficher. En ouvrant un objet Recordset à partir d'un objet Stream contenant un objet Recordset stocké avec persistance, elle n'aurait aucun effet, l'opération serait synchrone et bloquée. Egalement, elle n'a pas d'effet lorsque l'option adCmdTableDirect est utilisée pour ouvrir un jeu d'enregistrements. 0x80 indique que CommandText est une commande ou une procédure stockée qui ne retourne pas des lignes. Si quelques lignes sont retrouvées, elles sont mises de côté et non retournées. Elle peut seulement être passée comme un paramètre optionnel à la méthode >Execute d'un objet Connection ou Command. adAsyncFetchNonBlocking adExecuteNoRecords adExecuteStream indique que le résultat d'une exécution d'une commande devrait être retourné comme un flux (Stream). Elle est utilisable 0x400 seulement comme paramètre optionnel de la méthode Execute de l'objet Command. indique que CommandText est une commande ou une procédure stockée qui retourne une unique ligne qui devrait être retournée comme un objet Record. adExecuteRecord adOptionUnspecified Modifié le 10/05/2003 Description -1 indique que la commande est non-spécifiée. Page 62 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.15 / Les constantes FieldAttributeEnum Les constantes FieldAttributeEnum spécifient un ou plusieurs attributs d'un objet Field. Fields.Append Nom_Field, Type, Taille_Champs, _ FieldAttributeEnum, Valeur Constante Valeur Description 0x1000 indique que le fournisseur stocke en mémoire les valeurs de champs et les lectures ultérieures sont effectuées à partir de la émoire cache. 0x10 indique que le champ contient des données d'une longueur fixées. 0x2000 indique que le champ contient une valeur de chapitre, laquelle indique une valeur spécifique d'un objet Recordset enfant lié à ce champ parent. caractéristiquement, les champs de chapitre sont utilisés avec la formation de données ou les filtres. 0x40000 indique que le champ spécifie que la ressource représentée par l'enregistrement est une collection d'autres ressources, comme un répertoire, plutôt qu'une simple ressource comme un fichier texte. adFldIsDefaultStream 0x20000 indique que le champ contient l'objet Stream par défaut pour la ressource représentée par l'enregistrement. adFldIsNullable 0x20 indique que le champ accepte des valeurs nulles. adFldIsRowURL 0x10000 indique que le champ contient l'URL qui nomme la ressource à partir des données stockées par l'enregistrement. 0x80 indique que le champ est un champ binaire de type Long et qu'il est possible d'utiliser les méthodes AppendChunk et GetChunk. 0x40 indique qu'il est possible de lire des valeurs nulles à partir des champs. 0x2 indique que le champ est renvoyé, les valeurs de champ ne sont pas retrouvées à partir de la source de données avec l'enregistrement entier, mais seulement lors de leur accès explicite. 0x4000 indique que le champ représente une valeur numérique d'une colonne qui supporte des valeurs d'échelle négatives. L'échelle est spécifiée par la propriété NumericScale. 0x100 indique que le champ contient un identificateur de ligne persistant qui ne peut être accédé en écriture et n'a aucune valeur significative sauf pour identifier la ligne. 0x200 indique que le champ contient plusieurs types de date ou d'heure utilisés pour suivre à la trace des mises à jour. adFldCacheDeferred adFldFixed adFldIsChapter adFldIsCollection adFldLong adFldMayBeNull adFldMayDefer adFldNegativeScale adFldRowID adFldRowVersion adFldUnknownUpdatable 0x8 indique que le fournisseur ne peut déterminer s'il est possible d'écrire sur l'enregistrement. adFldUnspecified -1 indique que le fournisseur ne spécifie pas les attributs de 0xFFFFFFFF champs. adFldUpdatable 0x4 Modifié le 10/05/2003 indique que vous pouvez écrire sur l'enregistrement. Page 63 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.16 / Les constantes FieldStatusEnum Les constantes FieldStatusEnum indiquent le statut d'un objet Fields. FieldStatusEnum = Objet.Status Constante Valeur Description adFieldAlreadyExists 26 indique que le champ spécifié existe toujours. adFieldBadStatus 12 indique qu'une valeur de statut invalide a été envoyé d'ADO vers le fournisseur OLE DB. 20 indique que le serveur de l'URL spécifiée par la source Indicates that the server of the URL specified by Source n'a pu achever l'opération. 23 indique que durant une opération de déplacement, une arborescence ou un sous-arbrescence a été déplacée à un nouvel endroit, mais la source n'a pas pu être effacée. adFieldCantConvertValue 2 indique que le champ ne peut être récupéré ou stocké sans une perte de données. adFieldCantCreate 7 indique que le champ n'a pas pu être ajouté car le fournisseur a dépassé une limitation. adFieldDataOverflow 6 indique que les données retournées à partir du fournisseur ont débordées du type de données du champ. adFieldDefault 13 indique que la valeur par défaut pour le champ a été utilisé lorsque les données ont été fixées. adFieldDoesNotExist 16 indique que le champ spécifié n'existe pas. adFieldIgnore 15 indique que le champ a été évité en fixant les valeurs de données dans la source. adFieldIntegrityViolation 10 indique que le champ ne peut pas être modifié car il est une entité calculée ou dérivée. adFieldInvalidURL 17 indique que l'URL de la source de données contient des caractères invalides. adFieldIsNull 3 indique que le fournisseur a rettourné une valeur nulle. adFieldOK 0 par défaut indique que le champ a été ajouté ou supprimé avec succès. 22 indique que le fournisseur est incapable d'obtenir suffisamment d'espace de stockage pour finir une opération de déplacement ou de copie. adFieldCannotComplete adFieldCannotDeleteSource adFieldOutOfSpace indique soit que le champ a été supprimé et alors réajouté avec probablement un autre type de données, ou que la valeur du champ qui avait précédemment un statut adFieldOK, ait changé. adFieldPendingChange adFieldPendingDelete 0x20000 indique que l'opération de suppression a provoqué que le statut a été fixé. adFieldPendingInsert 0x10000 indique que l'opération Append a provoqué que le statut a été fixé. adFieldPendingUnknown 0x80000 indique que le fournisseur ne peut déterminer quel opération a provoqué que le statut a été fixé. adFieldPendingUnknownDelete indique que le fournisseur ne peut déterminer quel opération a provoqué que le statut a été fixé et que le 0x100000 champ and that the field will be deleted from the Fields collection after the Update method is called. adFieldPermissionDenied 9 Modifié le 10/05/2003 Indicates that the field cannot be modified because it is defined as read-only. Page 64 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 24 indique que le champ dans la source de onnées est défini en lecture seule. 18 indique que le fournisseur a été incapable d'exécuter les opérations car la source de onnées est verrouillée par une ou plusieurs autres applications ou processus. adFieldResourceOutOfScope 25 indique qu'une source ou une URL de destination est en dehors de la portée de l'enregistrement courant. adFieldSchemaViolation 11 indique que la valeur violée le schéma de contraintes de la source de données ppour le champ. 5 indique que la valeur de données retournée par le fournisseur a été signée, mais le type de données de la valeur de champ d'ADO était non signée. adFieldTruncated 4 indique que les données de longueur variable ont été tronquées en lisant à partir de la source de données. adFieldUnavailable 8 indique que le founisseur n'a pas pu déterminer la valeur lors d'une lecture sur la source de données. adFieldVolumeNotFound 21 indique que le fournisseur est incapable de localiser le volume de stockage indiqué par l'URL. adFieldReadOnly adFieldResourceLocked adFieldSignMismatch Modifié le 10/05/2003 Page 65 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.17 / Les constantes FilterGroupEnum Les constantes FilterGroupEnum indique les groupes d'enregistrements devant être filtré à partir d'un objet Recordset. Objet_Recordset.Filter = FilterGroupEnum Constante adFilterAffectedRecords Valeur 2 Description filtre pour voir essentiellement les enregistrements affectés par les derniers appels à Delete, Resync, UpdateBatch ou CancelBatch. adFilterConflictingRecords 5 filtre pour voir les enregistrements qui sont en échec lors de la dernière mise à jour de groupe. adFilterFetchedRecords 3 filtre pour voir les enregistrements dans le cache courant qui est le résultat du dernier appel pour retrouver les enregistrements à partir de la base de données. 0 enlève le filtre courant et restaure tous les enregistrements pour les voir. 1 filtre pour voir seulement les enregistrements qui ont été modifiés mais n'ant pas encore été envoyés sur le serveur. Il est applicable seulement pour le mode de mises à jour par lot. adFilterNone adFilterPendingRecords Modifié le 10/05/2003 Page 66 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.18 / La constante GetRowsOptionEnum La constante GetRowsOptionEnum spécifie combien d'enregistrements à retrouver à partir d'un objet Recordset. Objet_Recordset.GetRows(GetRowsOptionEnum, _ BookmarkEnum, Enregistrements) Constante adGetRowsRest Valeur -1 Modifié le 10/05/2003 Description retrouve le reste des enregistrements dans l'objet Recordset à partir soit de la position courante, soit d'un signet spécifié par le paramètre BookmarkEnum de la méthode GetRows. Page 67 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.19 / Les constantes IsolationLevelEnum Les constantes IsolationLevelEnum indique le niveau d'isolation de transaction pour un objet Connection. Objet_Connection.IsolationLevel = IsolationLevelEnum Constante adXactUnspecified adXactBrowse Valeur Description -1 indique que le fournisseur utilise un niveau d'isolation différent que celui indiqué, mais que le niveau ne peut être déterminé. 16 indique que des changements en suspens de plusieurs transactions fortement isolées ne peuvent être recopiés. 256 indique qu'à partir d'une transaction, vous pouvez voir des changements non engagés d'autres transactions. adXactReadUncommitted 256 identique à adXactBrowse. adXactCursorStability 4096 indique qu'à partir d'une transaction, vous pouvez voir les changements d'autres transactions seulement après avoir été engagées. 4096 identique à adXactCursorStability. 65536 indique qu'à partir d'une transaction, vous ne pouvez voir les changments opérés dans d'autres transactions, mais que des requêtes peuvent récupérer de nouveaux objets Recordset. adXactIsolated 1048576 indique que des transactions sont menées dans l'isolation d'autres transactions. adXactSerializable 1048576 identique à adXactIsolated. adXactReadCommitted adXactRepeatableRead Modifié le 10/05/2003 Page 68 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.20 / Les constantes LineSeparatorsEnum Les constantes LineSeparatorsEnum indiquent le caractère à utiliser comme séparateur de ligne dans le texte d'un objet Stream. Objet_Stream.LineSeparator = LineSeparatorsEnum Constante Valeur Description adCR 13 indique un retour charriot. adCRLF -1 par défaut, indique un retour charriot et un saut de ligne. adLF 10 indique un saut de ligne. Modifié le 10/05/2003 Page 69 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.21 / Les constantes LockTypeEnum Les constantes LockTypeEnum indique le type de verrou placé sur les enregistrements durant l'opération d'édition. Objet_Recordset.LockType = LockTypeEnum Constante Valeur Description adLockBatchOptimistic 4 indique les mises à jour par lot optimistes. Requis pour le mode de mise à jour par lot. adLockOptimistic 3 indique le verrouillage optimiste, enregistrement par enregistrement. Le fournisseur utlise le verouillage optimiste, verrrouillant seulement lors d'un appel de la méthode Update. 2 indique le verrouillage optimiste, enregistrement par enregistrement. Le fournisseur fait qu'il est nécessaire d'assurer le succès de l'édition des enregistrements, habituellement par le verrouillage des enregistrements de la source de données immédiatement après l'opération d'édition. adLockReadOnly 1 indique que les enregistrements sont en lecture seule. Il est donc impossible de modifier les données. adLockUnspecified -1 ne spécifie pas un type de verrou. Pour des doubles, le double est créé avec le même type de verrou que l'enregistrement original. adLockPessimistic Modifié le 10/05/2003 Page 70 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.22 / Les constantes MarshalOptionsEnum Les constantes MarshalOptionsEnum indique quels enregistrements devraient être retournés au serveur. Objet_Recordset.MarshalOptions = MarshalOptionsEnum Constante adMarshalAll Valeur 0 adMarshalModifiedOnly 1 Modifié le 10/05/2003 Description Default. Returns all rows to the server. Returns only modified rows to the server. Page 71 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.23 / Les constantes MoveRecordOptionsEnum Les constantes MoveRecordOptionsEnum MoveRecord de l'objet Record. indiquent le comportement de la méthode Objet_Record.MoveRecord(Source, Destination, _ Nom_Utilisateur, Mot_Passe, _ MoveRecordOptionsEnum, Bool_Asynchrone) Constante adMoveUnspecified adMoveOverWrite Valeur -1 1 recopie le fichier ou le répertoire de destination, même s'il existe déjà. 2 modifie le comportement de la méthode MoveRecord par défaut par une non-mise à jour des liens hypertextes de l'enregistrement source. Le comportement par défaut dépend des capacités du fournisseur. L'opération de déplacement met à jour les liens si le fournisseur en est capable. Si le fournisseur ne peut fixer les liens ou si cette valeur n'est pas spécifiée, alors le déplacement réussit même lorsque les liens n'ont pas été fixés. 4 demande que le fournisseur tente de simuler le mouvement. Si la tentative de déplacer l'enregistrement échoue parceque l'URL de destination est sur un serveur différent ou servi par un fournisseur différent que la source, ceci peut provoquer l'accroissement de latence ou la perte de données suite à des capacités de fournisseur différentes en déplaçant de ressources entre des fournisseurs. adMoveDontUpdateLinks adMoveAllowEmulation Modifié le 10/05/2003 Description par défaut, exécute l'opération de déplacement. L'opération échoue si le fichier ou le répertoire de destination existe déjà et l'opération met à jour les liens hypertextes. Page 72 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.24 / Les constantes ObjectStateEnum Les constantes ObjectStateEnum représente l'état d'un objet, c'est-à-dire s'il est ouvert ou fermé, connecté à la source de donées, en exécution d'une commande ou en recherche de données. Object_Command.State = ObjectStateEnum Constante Valeur Description adStateClosed 0 indique que l'objet est fermé. adStateOpen 1 indique que l'objet est ouvert. adStateConnecting 2 indique que l'objet est connecté. adStateExecuting 4 indique que l'objet exécute une commande. adStateFetching 8 indique que les lignes de l'objet ont été retrouvées. Modifié le 10/05/2003 Page 73 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.25 / Les constantes ParameterDirectionEnum Les constantes ParameterDirectionEnum indiquent si l'objet Parameter représente un paramètre entrée, un paramètre produit, les deux, ou la valeur retournée à partir d'une procédure stockée. FieldStatusEnum = Objet.Status Constante Valeur Description adParamInput 1 par défaut, indique que le paramètre représente un paramètre entrée. adParamInputOutput 3 indique que le paramètre représente un paramètre entrée et produit. adParamOutput 2 indique que le paramètre représente un paramètre produit. adParamReturnValue 4 indique que le paramètre représente une valeur retournée. adParamUnknown Modifié le 10/05/2003 0 indique que la direction de paramètre est inconnue. Page 74 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.26 / Les constantes PersistFormatEnum Les constantes PersistFormatEnum spécifient le format de sauvegarde d'un objet Recordset. bjet_Recordset.Save Destination, PersistFormatEnum Constante adPersistADTG adPersistADO adPersistXML Valeur 0 indique le format Microsoft Advanced Data TableGram (ADTG). 1 indique le format XML propre à ADO est employé. cette valeur est identique à adPersistXML et est incluse pour une compatibilité descendante. 1 indique le format XML (Extensible Markup Language). adPersistProviderSpecific 2 Modifié le 10/05/2003 Description indique que le fournisseur continue à utiliser le propre format de l'objet Recordset. Page 75 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.27 / Les constantes PositionEnum Les constantes PositionEnum spécifient la position courante du pointeur d'enregistrement à l'intérieur d'un objet Recordset. Objet_Recordset.AbsolutePage = PositionEnum Constante Valeur Description adPosBOF -2 indique que le pointeur d'enregistrement est à BOF (Before Of File). adPosEOF -3 indique que le pointeur d'enregistrement est à EOF (End Of File). -1 indique que l'objet Recordset est vide, la position courante est inconnue ou le fournisseur ne supporte pas les propriétés AbsolutePage ou AbsolutePosition. adPosUnknown Modifié le 10/05/2003 Page 76 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.28 / Les constantes RecordCreateOptionsEnum Les constantes RecordCreateOptionsEnum spécifient si un enregistrement existant doit être ouvert ou un nouvel enregistrement doit être creéé par la méthode Open de l'objet Record. Les valeurs peuvent être combinées avec l'opérateur AND. Objet_Record.Open Source, ActiveConnection, RecordCreateOptionsEnum, RecordOpenOptionsEnum, Nom_Utilisateur, Mot_Passe Constante Valeur adCreateCollection 0x2000 Description crée un nouvel enregistrement au noeud spécifié par le paramètre Source. Si la source pointe vers un noeud existant, alors une erreur de type run-time se produit, à moins que adCreateCollection soit combiné avec adOpenIfExists ou adCreateOverwrite. adCreateNonCollection 0 crée un nouvel enregistrement de type adSimpleRecord. adCreateOverwrite 0x4000000 modifie les indicateurs de création adCreateCollection, adCreateNonCollection, et adCreateStructDoc. Lorsque l'opérateur OR est utilisé avec cette valeur et une des valeurs indicatrices de création, si l'adresse URL de la source pointe vers un noeud ou un enregistrement existant, alors l'enregistrement existant est recopié et un nouveau est créé à sa place. Cette valeur ne peut être utilisé avec adOpenIfExists. adCreateStructDoc 0x80000000 crée un nouvel enregistrement de type adStructDoc, à la place de l'ouverture d'un enregistrement exustant. adFailIfNotExists -1 par défaut, résulte une erreur de type run-time si la Source pointe vers un noeud inexistant. 0x2000000 modifie les indicateurs de création adCreateCollection, adCreateNonCollection, et adCreateStructDoc. Lorsque OR est utilisé avec cette valeur et une des valeurs indicatrices de création, si l'adresse URL de la source pointe vers un noeud ou un enregistrement existant, alors le fournisseur peut ouvrir l'enregistrement existant plutôt que d'en créer un nouveau. Cette valeur ne peut être utilisé avec adCreateOverwrite. adOpenIfExists Modifié le 10/05/2003 Page 77 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.29 / Les constantes RecordOpenOptionsEnum Les constantes RecordOpenOptionsEnum spécifient les options pour l'ouverture d'un objet Record. Ces valeurs peuvent être combinées en utilisant l'opérateur OR. Objet_Record.Open Source, ActiveConnection, RecordCreateOptionsEnum, RecordOpenOptionsEnum, Nom_Utilisateur, Mot_Passe Constante Valeur 0x8000 0x4000 indique au fournisseur que l'objet Stream par défaut associé à l'enregistrement n'a pas besoin d'être récupérer initiallement. Le comportement par défaut, indiqué par l'absece de cet indicateur, est de retrouver l'objet Stream par défaut associé à l'enregistrement.. 0x1000 indique que l'enregistrement est ouvert dans le mode asynchrone. 0x10000 indique que la Source contient une commande textuelle qui doit être exécutée. Cette valeur est équivalente à l'option adCmdText de la méthode Open de l'objet Recordset. adDelayFetchFields adDelayFetchStream adOpenAsync adOpenExecuteCommand adOpenRecordUnspecified -1 adOpenOutput Modifié le 10/05/2003 Description indique au fournisseur que les champs associés à l'enregistrement n'a pas besoin d'être retrouvé initialement, mais peut l'être à la première tentative d'accéder à l'enregistrement. Le comportement par défaut indiqué par l'absence de cet indicateur, est de retrouver tous les champs de l'enregistrement. par défaut, indique qu'aucune option n'est spécifiée. indique que la source pointe vers un noeud contenant un script exécutable, alors l'enregistrement ouvert contiendra le résultat 0x800000 de l'exécution du script. Cette valeur est seulement valide avec des enregistrements ne faisant pas parti de collection. Page 78 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.30 / Les constantes RecordStatusEnum Les constantes RecordStatusEnum indique le statut d'un enregistrement par rapport à des mises à jour par lot et d'autres opérations par groupe. Objet_Recordset.Status = RecordStatusEnum Constante Valeur Description adRecCanceled 0x100 indique que l'enregistrement n'a pas été sauvegardé car l'opération a été annulée. adRecCantRelease 0x400 indique que le nouvel enregistrement n'a pas été sauvegardé car l'enregistrement existant a été verrouillé. adRecConcurrencyViolation 0x800 indique que l'enregistrement n'a pas été sauvegardé car le consentement optimiste était en utilisation. adRecDBDeleted 0x40000 indique que l'enregistrement a déjà été supprimé de la source de données. adRecDeleted 0x4 indique que l'enregistrement a été supprimé. adRecIntegrityViolation 0x1000 indique que l'enregistrement n'a pas été sauvegardé car l'utilisateur a violé les contraintes d'intégrité. adRecInvalid 0x10 indique que l'enregistrement n'a pas été sauvegardé car son signet n'est pas valide. adRecMaxChangesExceeded 0x2000 indique que l'enregistrement n'a pas été sauvegardé car il y en avait trop durant les modifications. adRecModified 0x2 indique que l'enregistrement a étté modifié. adRecMultipleChanges 0x40 indique que l'enregistrement n'a pas été sauvegardé car il aurait affecté des enregistrements multiples. adRecNew 0x1 indique que l'enregistrement est nouveau. adRecObjectOpen 0x4000 indique que l'enregistrement n'a pas été sauvegardé à cause d'un conflit avec un objet stocké ouvert. adRecOK 0 Indicates that the record was successfully updated. adRecOutOfMemory 0x8000 indique que l'enregistrement n'a pas été sauvegardé car l'ordinateur a démarré en dépassement de mémoire. adRecPendingChanges 0x80 indique que l'enregistrement n'a pas été sauvegardé car il se réfère à une insertion en cours. adRecPermissionDenied 0x10000 indique que l'enregistrement n'a pas été sauvegardé car l'utilisateur a des permissions insuffisantes. adRecSchemaViolation 0x20000 indique que l'enregistrement n'a pas été sauvegardé car il violé la structure sous-jacente de la base de données. adRecUnmodified 0x8 indique que l'enregistrement n'a pas été modifié. Modifié le 10/05/2003 Page 79 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.31 / Les constantes RecordTypeEnum Les constantes RecordTypeEnum indiquent le type de l'objet Record. Objet_Record.RecordType = RecordTypeEnum Constante adSimpleRecord Valeur 0 adCollectionRecord 1 Description indique un enregistrement simple ne contenant pas de noeuds enfants. indique une collection d'enregistrements contenant des noeuds enfants. adRecordUnknown -1 indique que le type de cet enregistrement est inconnu. adStructDoc 2 indique un type spécial de collection d'enregistements qui représente des documents structurés COM. Modifié le 10/05/2003 Page 80 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.32 / Les constantes ResyncEnum Les constantes ResyncEnum indique si les valeurs sous-jacentes sont recopiées par un appel à la méthode Resync. Objet_Recordset.Resync AffectEnum, ResyncEnum Constante adResyncAllValues Valeur 2 adResyncUnderlyingValues 1 Modifié le 10/05/2003 Description par défaut, recopie les données et durant les mises à jour sont annulées. ne recopie pas les données, et durant les mises à jour ne sont pas annulés. Page 81 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.33 / Les constantes SaveOptionsEnum Les constantes SaveOptionsEnum spécifient si un fichier doit être créé ou recopié lors de la sauvegarde à partir d'un objet Stream. Les valeurs peuvent être combinées avec un opérateur AND. Objet_Stream.SaveToFile Fichier, SaveOptionsEnum Constante adSaveCreateNotExist adSaveCreateOverWrite Modifié le 10/05/2003 Valeur Description 1 par défaut, crée un nouveau fichier si le fichier spécifié par le paramètre Fichier n'existe pas déjà. 2 recopie le fichier avec les données provenant de l'objet Stream courant ouvert, si le fichier spécifié par le paramètre Fichier existe déjà. Page 82 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.34 / Les constantes SchemaEnum Les constantes SchemaEnum indique le type de schéma d'un jeu d'enregistrements Recordset que la méthode OpenSchema récupère. Set Objet_Recordset = _ Objet_Connection.OpenSchema(SchemaEnum, _ Critères, ID_Schema) Constante Valeur Description Contraintes adSchemaAsserts 0 retourne les assertions définies dans le catalogue qui sont possédées par un utilisateur donné. (ASSERTIONS Rowset) CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME adSchemaCatalogs 1 retourne les attributs physiques associés aux catalogues (CATALOGS Rowset) CATALOG_NAME accessibles du DBMS. adSchemaCharacterSets 2 retourne les jeux de caractères définis dans le cataloguequi sont accessible à un utilisateur donné. (CHARACTER_SETS Rowset) CHARACTER_SET_CATALOG CHARACTER_SET_SCHEMA CHARACTER_SET_NAME adSchemaCheckConstraints 5 retourne les contraintes vérifiées définies dans le catalogue qui sont possédées par un utilisateur donné. (CHECK_CONSTRAINTS Rowset) CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME adSchemaCollations 3 (COLLATIONS Rowset) retourne les comparaisons de caractères définies dans COLLATION_CATALOG le catalogue qui sont accessibles à un utilisateur donné. COLLATION_SCHEMA COLLATION_NAME adSchemaColumnPrivileges 13 retourne les privilèges sur des colonnes de tables définis dans le catalogue qui sont disponible ou accordés à un utilisateur donné. (COLUMN_PRIVILEGES Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME GRANTOR GRANTEE adSchemaColumns 4 retourne les colonnes de tableaux définies dans le catalogue qui sont accessibles à un utilisateur donné. (COLUMNS Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME adSchemaColumnsDomainUsage 11 retourne les colonnes définies dans le catalogue qui sont dépendants d'un domaine défini dans le catalogue et possédé par un utilisateur donné. Modifié le 10/05/2003 (COLUMN_DOMAIN_USAGE Rowset) DOMAIN_CATALOG DOMAIN_SCHEMA Page 83 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO DOMAIN_NAME COLUMN_NAME adSchemaConstraintColumnUsage 6 retourne les colonnes utilisées par des contraintes référentielles, contraintes uniques, contraintes vérifiées, et assertions, définis dans le catalogue et possédés par un utilisateur donné. (CONSTRAINT_COLUMN_USAGE Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME adSchemaConstraintTableUsage 7 retourne les tableaux qui sont utilisés par des contraintes référentielles, contraintes uniques, contraintes vérifiées et assertions définis dans le catalogue et possédés par un utilisateur donné. (CONSTRAINT_TABLE_USAGE Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME adSchemaCubes 32 retourne les informations à propos des cubes disponibles dans un schéma. (CUBES Rowset*) CATALOG_NAME SCHEMA_NAME CUBE_NAME adSchemaDBInfoKeywords 30 retourne une liste de mots-clés d'un fournisseur spécifique. (IDBInfo::GetKeywords *) adSchemaDBInfoLiterals 31 retourne une liste de littéraux d'un fournisseur spécifique (IDBInfo::GetLiteralInfo *) utilisés dans les commandes textuelles. adSchemaDimensions 33 retourne les informations à propos des dimensions d'un cube donné. (DIMENSIONS Rowset *) CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_NAME DIMENSION_UNIQUE_NAME adSchemaForeignKeys 27 retourne les colonnes clés extérieurs définies dans le catalogue par un utilisateur donné. (FOREIGN_KEYS Rowset) PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME FK_TABLE_CATALOG FK_TABLE_SCHEMA FK_TABLE_NAME adSchemaHierarchies 34 retourne les informations à propos des hiérarchies disponibles dans un dimension. (HIERARCHIES Rowset *) CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_NAME HIERARCHY_UNIQUE_NAME adSchemaIndexes 12 retourne les index définis dans le catalogue qui sont possédés par un utilisateur donné. Modifié le 10/05/2003 (INDEXES Rowset) TABLE_CATALOG TABLE_SCHEMA INDEX_NAME Page 84 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO TYPE TABLE_NAME adSchemaKeyColumnUsage 8 retourne les colonnes définies dans le catalogue qui sont contraint comme des clés par un utilisateur donné. (KEY_COLUMN_USAGE Rowset) CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME adSchemaLevels 35 retourne les informations à propos des niveaux disponibles dans un dimension. (LEVELS Rowset*) CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_NAME LEVEL_UNIQUE_NAME adSchemaMeasures 36 retourne les informations à propos des mesures. (MEASURES Rowset *) CATALOG_NAME SCHEMA_NAME CUBE_NAME MEASURE_NAME MEASURE_UNIQUE_NAME adSchemaMembers 38 retourne les informations à propos des membres. (MEMBERS Rowset *) CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME LEVEL_NUMBER MEMBER_NAME MEMBER_UNIQUE_NAME MEMBER_CAPTION MEMBER_TYPE adSchemaPrimaryKeys 28 retourne les colonnes des clés primaires définies dans le catalogue par un utilisateur donné. (PRIMARY_KEYS Rowset) PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME adSchemaProcedureColumns 29 retourne les informations à propos des colonnes et des jeux de lignes retournés par des procédures. (PROCEDURE_COLUMNS Rowset) PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME COLUMN_NAME adSchemaProcedureParameters 26 retourne les informations à propos des paramètres et retourne les codes des procédures. Modifié le 10/05/2003 (PROCEDURE_PARAMETERS Rowset) PROCEDURE_CATALOG PROCEDURE_SCHEMA Page 85 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO PROCEDURE_NAME PARAMETER_NAME adSchemaProcedures 16 retourne les rocédures définies dans le catalogue qui sont possédés par un utilisateur donné. (PROCEDURES Rowset) PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME PROCEDURE_TYPE adSchemaProperties 37 retourne les informations à propos des propriétés disponibles pour chaque niveau des dimensions. (PROPERTIES Rowset *) CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME MEMBER_UNIQUE_NAME PROPERTY_TYPE PROPERTY_NAME adSchemaProviderSpecific -1 utilisé si le fournisseur définit ses propres requêtes de schéma non-standards. adSchemaProviderTypes 22 retourne les types de données supportés par le fournisseur de données. (PROVIDER_TYPES Rowset) DATA_TYPE BEST_MATCH adSchemaReferentialConstraints 9 retourne les contraintes référentielles définies dans le catalogue qui sont possédées par un utilisateur donné. (REFERENTIAL_CONSTRAINTS Rowset) CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME adSchemaSchemata 17 retourne les schémas qui sont possédés par un utilisateur donné. (SCHEMATA Rowset) CATALOG_NAME SCHEMA_NAME SCHEMA_OWNER adSchemaSQLLanguages 18 retourne les niveaux de conformité, les options, et les dialectes supportés par le traitement de données SQL défini dans le catalogue. (SQL_LANGUAGES Rowset) adSchemaStatistics 19 retourne les statistiques définies dans le catalogue qui sont possédées par un utilisateur donné. (STATISTICS Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME adSchemaTableConstraints 10 retourne les tableaux de contraintes définis dans le catalogue qui sont possédés par un utilisateur donné. Modifié le 10/05/2003 (TABLE_CONSTRAINTS Rowset) CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME Page 86 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO CONSTRAINT_TYPE adSchemaTablePrivileges 14 retourne les provilèges sur des tableaux définis dans le catalogue qui sont disponibles ou concédés par un utilisateur donné. (TABLE_PRIVILEGES Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME GRANTOR GRANTEE adSchemaTables 20 retourne les tableaux définis dans le catalogue qui sont accessibles à un utilisateur donné. (TABLES Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE adSchemaTranslations 21 retourne les traductions de caractères définis dans le catalogue qui sont accessibles à un utilisateur donné. (TRANSLATIONS Rowset) TRANSLATION_CATALOG TRANSLATION_SCHEMA TRANSLATION_NAME adSchemaTrustees 39 réservé pour une future utilisation. adSchemaUsagePrivileges 15 retourne les privilèges en usage sur des objets définis dans le catalogue qui sont disponibles et concédés par un utilisateur donné. (USAGE_PRIVILEGES Rowset) OBJECT_CATALOG OBJECT_SCHEMA OBJECT_NAME OBJECT_TYPE GRANTOR GRANTEE adSchemaViewColumnUsage 24 retourne les colonnes sur lesquelles sont vus des tableaux définis dans le catalogue et possédés par un utilisateur donné, sont dépendant. (VIEW_COLUMN_USAGE Rowset) VIEW_CATALOG VIEW_SCHEMA VIEW_NAME adSchemaViews 23 retourne les vues définies dans le catalogue qui sont accessibles à un utilisateur donné. (VIEWS Rowset) TABLE_CATALOG TABLE_SCHEMA TABLE_NAME adSchemaViewTableUsage 25 retourne les tableaux sur lesquels des tableaux sont vus, définis dans le catalogue et possédés par un utilisateur donné, sont dépendants. Modifié le 10/05/2003 (VIEW_TABLE_USAGE Rowset) VIEW_CATALOG VIEW_SCHEMA VIEW_NAME Page 87 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.35 / Les constantes SearchDirectionEnum Les constantes SearchDirectionEnum indiquent la direction d'une recherche d'enregistrement à l'intérieur d'un objet recordset Objet_Recordset.Find(Critère, Saut_ligne, _ SearchDirectionEnum, Démarrage) Constante adSearchBackward adSearchForward Valeur Description -1 recherche en arrière, stoppant au début de l'objet Recordset. Si une correspondance n'est pas trouvée, le pointeur d'enregistrement est positionné à BOF (Before Of File). 1 recherche en avant, stoppant à la fin de l'objet Recordset. Si une correspondance n'est pas trouvée, le pointeur d'enregistrement est positionné à EOF (End Of File). Modifié le 10/05/2003 Page 88 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.36 / Les constantes SeekEnum Les constantes SeekEnum indique le type de recherche à exécuter. Objet_Recordset.Seek Tableau_Valeurs, SeekEnum Constante Valeur Description adSeekFirstEQ 1 recherche le premier index égal au tableau de valeurs spécifié. adSeekLastEQ 2 recherche le dernier index au tableau de valeurs spécifié. adSeekAfterEQ 4 recherche soit un index égal au tableau de valeurs spécifié, soit juste après où cette correspondance se serait présentée. adSeekAfter 8 recherche un index juste après où une correspondance avec un tableau de valeurs se serait présentée. adSeekBeforeEQ 16 recherche soit un index égal au tableau de valeurs, soit juste avant où cette correspondance se serait présentée. adSeekBefore recherche une clé juste avant où une correspondance avec le tableau de valeurs se serait présentée. 32 Modifié le 10/05/2003 Page 89 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.37 / Les constantes de Stat Les constantes de la méthode Stat, c'est-à-dire StatStg et StatFlag permettent de récupérer une information à propos de l'objet Stream. Objet_Stream.Stat(StatStgEnum, StatFlag) Le paramètre StatStg indique une structure STATSTG qui sera remplie avec l'information à proposde l'objet Stream. La mise en oeuvre de la méthode Stat utilisée par l'objet Stream d'ADO ne se remplit pas dans tous les champs de la structure. Le paramètre StatFlag indique que cette méthode ne retourne aucuns des membres dans la structure de STATSTG, sauvegardant ainsi une opération d'allocation de mémoire. Les valeurs sont fixées selon les valeurs possibles de STATFLAG. Constante Valeur STATFLAG_DEFAULT 0 STATFLAG_NONAME Modifié le 10/05/2003 1 Page 90 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.38 / Les constantes StreamOpenOptionsEnum Les constantes StreamOpenOptionsEnum indiquent les options pour l'ouverture d'un objet Stream. Les valeurs peuvent être combinées par un opérateur OR. Objet_Stream.Open Source, ConnectModeEnum, _ StreamOpenOptionsEnum, Nom_Utilisateur, Mot_Passe Constante adOpenStreamAsync Valeur 1 ouvre l'objet Stream dans un mode asynchrone. 4 identifie le contenu du paramètre Source pour être un objet Record déjà ouvert. Le comportement par défaut est de traiter la Source comme une URL qui pointe directement vers un noeud dans une arborescence. Le flux par défaut associé avec ce noeud est ouvert. -1 par défaut, indique l'ouverture de l'objet Stream avec les options par défaut. adOpenStreamFromRecord adOpenStreamUnspecified Modifié le 10/05/2003 Description Page 91 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.39 / Les constantes StreamTypeEnum Les constantes StreamTypeEnum indiquent le type de données stockées dans un objet Stream. Objet_Stream.Type = StreamTypeEnum Constante Valeur Description adTypeBinary 1 indique des données binaires. adTypeText par défaut, indique des données textuelles converties dans le jeu de caractères spécifié. 2 Modifié le 10/05/2003 Page 92 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.40 / Les constantes StreamWriteEnum Les constantes StreamWriteEnum indiquent si un séparateur de ligne est ajouté à une chaîne de caractères écrite dans un objet Stream. Objet_Stream.WriteText Donnée, StreamWriteEnum Constante Valeur Description adWriteChar 0 par défaut, écrit le texte spécifié par le paramètre Donnée vers l'objet Stream. adWriteLine écrit un texte et un séparateur de lignes dans un objet Stream. Si la propriété LineSeparator n'est pas définie, alors elle retourne un erreur de traitement. 1 Modifié le 10/05/2003 Page 93 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 5.41 / La constante StringFormatEnum La constante StringFormatEnum indique le format à utiliser pour construire la chaîne de caractères retournée suite à la récupération des enregistrements. Objet_Recordset.GetString(StringFormatEnum) Constante Valeur adClipString 2 Description délimite les lignes par un retour charriot (CARRIAGE RETURN), les colonnes par une tabulation (TAB) et la valeur Null par une chaîne vide (EMPTY-string). Modifié le 10/05/2003 Page 94 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 6 / Les commanes SQL Les commandes select et FROM sont utilsées pour sélectionner des tables dans une base de données. Il est également possible de sélectionner de un à plusieurs champs en séparant les noms de champs ou de colonnes par une virgule. Pour sélectionner tous les champs, il suffit d'utiliser une étoile à la place des nomds de champs. select nom_champ,..., nom_champN FROM nom_table Librairie ISBN Livre Editeur Prix 1565926978 ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS) O'REILLY 330.00 1565929489 ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN O'REILLY ANGLAIS) 286.00 2212092857 INITIATION A SQL - COURS ET EXERCICES CORRIGES EYROLLES 183.00 2744009296 SQL CAMPUSPRESS FRANCE 62.00 2744090034 MAITRISEZ SQL WROX PRESS 286.00 2840725029 SQL ENI 140.00 2840828987 KIT DE FORMATION MICROSOFT SQL SERVER 2000 ADMINISTRATION SYSTEME MICROSOFT PRESS 284.00 select Livre FROM Librairie ' retourne ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS) ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS) INITIATION A SQL - COURS ET EXERCICES CORRIGES SQL MAITRISEZ SQL SQL KIT DE FORMATION MICROSOFT SQL SERVER 2000 ADMINISTRATION SYSTEME La commande DISTINCT sélectionne chaque élément distinct d'une colonne de données. La commande ALL indique que les doublons peuvent apparaître dans le résultat d'une requête, elle constitue la commande par défaut de select. select DISTINCT nom_champ FROM nom_table select DISTINCT Livre FROM Librairie ' retourne ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS) ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS) INITIATION A SQL - COURS ET EXERCICES CORRIGES SQL MAITRISEZ SQL KIT DE FORMATION MICROSOFT SQL SERVER 2000 ADMINISTRATION SYSTEME La commande WHERE pose une condition dans la requête de sélection. L'expression conditionnelle peut être construite à l'aide de plusieurs prédicats constitués d'opérateurs de comparaisons (= | <> | != | > | > = | !> | < | <= Modifié le 10/05/2003 Page 95 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO | !<)et séparés par des opérateurs booléens AND, OR ou NOT. select "nom_champ" FROM "nom_table" WHERE "condition" select Livre FROM Librairie WHERE Prix < 200 ' retourne INITIATION A SQL - COURS ET EXERCICES CORRIGES SQL SQL La commande GROUP BY spécifie des groupes dans lesquels les lignes de sortie doivent être placées et calcule une valeur de résumé pour chacun des groupes si des fonctions d'agrégation sont employées avec la commande select. select nom_champ, Fonction_Agregation FROM nom_table GROUP BY nom_champ2 select Editeur, SUM(Prix) FROM Librairie GROUP BY Editeur ' retourne O'REILLY EYROLLES CAMPUSPRESS FRANCE WROX PRESS ENI MICROSOFT PRESS 616.00 183.00 62.00 286.00 140.00 284.00 La commande HAVING spécifie un critère de recherche pour un groupe ou une fonction d'agrégation. HAVING est génralement utilisé avec GROUP BY, sinon HAVING se comporte à l'instar de WHERE. select nom_champ, Fonction_Agregation FROM nom_table GROUP BY nom_champ2 HAVING "Condition" select Editeur, SUM(Prix) FROM Librairie GROUP BY Editeur HAVING SUM(Prix) > 200 ' retourne O'REILLY 616.00 WROX PRESS 286.00 MICROSOFT PRESS 284.00 Les alias concourrent à améliorer la lisibilité d'une requête. Il existe deux types d'alias : les alias de tables et les alias de champs. Les alias peuvent également s'appliquer à une fonction d'agrégation retournant des données sous forme de colonnes. Modifié le 10/05/2003 Page 96 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO select Alias_table.nom_champ Alias_champ FROM nom_table AS Alias_table select L.Editeur Edi, SUM(L.Prix) F FROM Librairie As L GROUP BY Edi HAVING F > 200 ' retourne O'REILLY 616.00 WROX PRESS 286.00 MICROSOFT PRESS 284.00 Les commandes de jointures de tables donnent la possibilité d'appliquer des requêtes sur plusieurs tables d'une base de données. select tab.nom_champ FROM nom_table As tab [INNER | {{LEFT | RIGHT | FULL } [ OUTER]}] JOIN nom_table2 As tab2 ON Condition La condition de la commande ON permet de comparer les tables jointes par l'intermédiaire de champs dont les valeurs sont identiques et comparables. INNER JOIN (option par défaut) indique toutes les paires correspondantes des lignes renvoyées et supprime les lignes n'ayant pas de correspondance entre les deux tables. FULL OUTER JOIN indique qu'une ligne de la table de gauche ou de droite, ne respectant pas la condition de jointure, est comprise dans le jeu de résultats et que les colonnes de sortie correspondant à l'autre table comportent des valeurs NULL. LEFT OUTER JOIN indique que toutes les lignes de la table de gauche ne respectant pas la condition de jointure sont incluses dans le jeu de résultats, et que les colonnes de sortie de l'autre table ont des valeurs NULL en plus de toutes les lignes renvoyées par la jointure interne. RIGHT OUTER JOIN indique que toutes les lignes de la table de droite ne respectant pas la condition de jointure sont comprises dans le jeu de résultats, et que les colonnes de sortie correspondant à l'autre table ont des valeurs NULL en plus de toutes les lignes renvoyées par la jointure interne. Edition Editeur O'REILLY Adresse URL http://www.oreilly.com/ CAMPUSPRESS FRANCE http://www.campuspress.fr/ WROX PRESS http://www.wrox.com/ MICROSOFT PRESS http://www.microsoft.com/mspress/ select L.ISBN, L.Editeur, E.Adresse FROM Librairie As L INNER JOIN Edition As E ON L.Editeur = E.Editeur ' retourne ISBN Editeur 1565926978 O'REILLY 1565929489 O'REILLY CAMPUSPRESS 2744009296 FRANCE Modifié le 10/05/2003 Adresse http://www.oreilly.com/ http://www.oreilly.com/ http://www.campuspress.fr/ Page 97 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO 2744090034 WROX PRESS MICROSOFT 2840828987 PRESS http://www.wrox.com/ http://www.microsoft.com/mspress/ select L.ISBN, L.Editeur, E.Adresse FROM Librairie As L LEFT OUTER JOIN Edition As E ON L.Editeur = E.Editeur ' retourne ISBN 1565926978 1565929489 2212092857 2744009296 2744090034 2840725029 2840828987 Editeur O'REILLY O'REILLY EYROLLES CAMPUSPRESS FRANCE WROX PRESS ENI MICROSOFT PRESS Adresse http://www.oreilly.com/ http://www.oreilly.com/ NULL http://www.campuspress.fr/ http://www.wrox.com/ NULL http://www.microsoft.com/mspress/ Les fonctions d'agrégation accomplissent un calcul sur plusieurs valeurs et retournent un résultat et sont souvent utilisées avec les commandes GROUP BY et select. Hormis la fonction COUNT, les fonctions d'agrégation ne tiennent pas compte des valeurs NULL. Fonction Description retourne la moyenne des valeurs d'un groupe. AVG BINARY_CHECKSUM retourne la valeur totale de contrôle binaire calculée à partir d'une ligne d'une table ou d'une liste d'expressions. CHECKSUM retourne la valeur de checksum calculée dans une ligne d'une table ou dans une liste d'expressions. CHECKSUM_AGG retourne le checksum des valeurs d'un groupe. COUNT retourne le nombre d'éléments figurant dans un groupe. COUNT_BIG retourne le nombre d'éléments figurant dans un groupe. MAX retourne la valeur maximale de l'expression. MIN retourne la valeur minimale de l'expression. SUM retourne la somme de toutes les valeurs STDEV retourne l'écart type de toutes les valeurs de l'expression spécifiée. STDEVP retourne l'écart type de remplissage pour toutes les valeurs de l'expression spécifiée. var retourne la variance de toutes les valeurs de l'expression spécifiée. VARP retourne la variance de remplissage pour toutes les valeurs de l'expression spécifiée. select COUNT(Livre) FROM Librairie ' retourne 7 Modifié le 10/05/2003 Page 98 sur 99 L'Altruiste : Le guide des langages Web - La technique ADO SELECT SUM(Prix) FROM Librairie ' retourne 1 571 Modifié le 10/05/2003 Page 99 sur 99