Transatlantic Dialogue: Roger Bastide and the African American Religions
L'Altruiste : La technique ADO - Roger NEEL Accueil
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of L'Altruiste : La technique ADO - Roger NEEL Accueil
L'Altruiste : La technique ADO 1
1 sur 109
L'Altruiste : Le guide des langages Web
La technique ADO
Sommaire1/Introduction2/Les objets ADO2.1/L'objet ADO Command2.2/L'objet ADO Connection
2.2.1/Les arguments de ConnectionString2.3/L'objet ADO Error2.4/L'objet ADO Fields2.5/L'objet ADO Parameter2.6/L'objet ADO Property2.7/L'objet ADO Record2.8/L'objet ADO Recordset2.9/L'objet ADO Stream
3/Les collections3.1/La collection ADO Errors3.2/La collection ADO Fields3.3/La collection ADO Parameters3.4/La collection ADO Properties
4/Les types de curseurs5/Les constantes ADO5.1/Les constantes AffectEnum5.2/Les constantes BookmarkEnum5.3/Les constantes CommandTypeEnum5.4/Les constantes CompareEnum5.5/Les constantes ConnectModeEnum5.6/Les constante CopyRecordOptionsEnum5.7/Les constantes CursorLocationEnum5.8/Les constantes CursorOptionEnum5.9/Les constantes CursorTypeEnum5.10/Les constantes DataTypeEnum5.11/Les constantes CursorTypeEnum5.12/Les constantes EventReasonEnum5.13/Les constantes EventStatusEnum5.14/Les constantes ExecuteOptionEnum5.15/Les constantes FieldAttributeEnum5.16/Les constantes FieldStatusEnum5.17/Les constantes FilterGroupEnum5.18/La constante GetRowsOptionEnum5.19/Les constantes IsolationLevelEnum5.20/Les constantes LineSeparatorsEnum5.21/Les constantes LockTypeEnum5.22/Les constantes MarshalOptionsEnum5.23/Les constantes MoveRecordOptionsEnum5.24/Les constantes ObjectStateEnum5.25/Les constantes ParameterDirectionEnum5.26/Les constantes PersistFormatEnum5.27/Les constantes PositionEnum5.28/Les constantes RecordCreateOptionsEnum5.29/Les constantes RecordOpenOptionsEnum5.30/Les constantes RecordStatusEnum5.31/Les constantes RecordTypeEnum5.32/Les constantes ResyncEnum5.33/Les constantes SaveOptionsEnum5.34/Les constantes SchemaEnum5.35/Les constantes SearchDirectionEnum5.36/Les constantes SeekEnum5.37/Les constantes de Stat
L'Altruiste : La technique ADO 2
2 sur 109
5.38/Les constantes StreamOpenOptionsEnum5.39/Les constantes StreamTypeEnum5.40/Les constantes StreamWriteEnum5.41/La constante StringFormatEnum
6/Les commanes SQL
L'Altruiste : La technique ADO 3
3 sur 109
1 / Introduction
Les composants ActiveX Data Objects (ADO) permettent d'établir une interaction entre uneapplication Web et des sources de données.
Les données représentent principalement le contenu d'un site Internet, et partant, possèdent unintérêt vital auprès des utilisateurs.
Dans le cas d'un site de commerce électronique, la parfaite administration des données constitue unenjeu capital dans la réussite de l'entreprise. En effet, il est nécessaire de mettre à jour régulièrement lesdonné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 sourcescentralisant l'ensemble des données, indépendamment de la structure de présentation, basée engénéral sur le langage HTML.
ActiveX Data Objects associé à un langage de script tel que VBScript ou JScript, permettent deconstruire des applications Web puissantes et interactives, capables de fonctionner avec diverses sourcesde 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 objetset collections.
Ainsi, un ensemble d'articles pourrait correspondre à un jeu d'enregistrements (objet Recordset), unarticle à un enregistrement (objet Record), les caractéristiques de ce-dernier à une collection dechamps (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 cesdernières, ou encore l'accès au contenu d'un noeud, se traduisent tous par un objet spécifique, enl'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 estrelativement 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 dedonnées comme ODBC (Open DataBase Connectivity), DAO (Data Access Objects) ou RDO (RemoteData 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 applicationsCOM (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édiaired'OLE DB. Ainsi, une application ASP rédigée en VBScript ou JScript parvient à atteindre une base dedonnées par une première couche spécifique, ADO, qui se charge de traverser l'interface OLE DB pouraccéder au but.
Par ailleurs, ADO doit faire appel à un fournisseur correspondant au type d'une source de donnéeset 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 deVisual Basic For Applications ou Visual Studio ou encore Visual C++.
L'Altruiste : La technique ADO 4
4 sur 109
2 / Les objets ADO
Les objets ADO permettent d'accomplir diverses actions sur des bases de données en utilisant unfournisseur OLE DB (Object Linking Embedding DataBase).
Chacun des objets ADO peuvent être contenus dans leurs collections correspondantes commeField ou Error dans leur collection respective Fields et Errors.
L'Altruiste : La technique ADO 5
5 sur 109
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 desenregistrements (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'objetCommand.
Le constructeur ci-dessous permet de créer un objet ADO Command.
Set Objet_Command = Server.CreateObject("ADODB.Command")'ouSet Objet_Command = New ADODB.Command
Désormais, il devient possible d'appliquer à cet objet ainsi créé, ses collections, propriétés ouméthodes.
Objet_Command.Collection | Propriété | Méthode
Les CollectionsCollection
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ésProprié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éclencherl'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.
L'Altruiste : La technique ADO 6
6 sur 109
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éthodesMé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_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]
L'Altruiste : La technique ADO 7
7 sur 109
<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%><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>
L'Altruiste : La technique ADO 8
8 sur 109
<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 End If%></body></html>
L'Altruiste : La technique ADO 9
9 sur 109
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 surune 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 desconnexions 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, oupropriétés d'un objet Connection peuvent ne pas être disponibles.
Les CollectionsCollection
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
L'Altruiste : La technique ADO 10
10 sur 109
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éclencherl'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 dedé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, Recordou Stream.
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
L'Altruiste : La technique ADO 11
11 sur 109
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 decommencer une nouvelle transaction.
Objet_Connection.RollbackTrans
annule n'importe quels changements opérés durant la trasaction courante et termine la transaction. Ilpeut 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_Command.Execute
exécute une requête, une instructions SQL, une procédure stockée ou le texte propre au fournisseurspé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énementsEvé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.
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.
L'Altruiste : La technique ADO 12
12 sur 109
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]
L'Altruiste : La technique ADO 13
13 sur 109
<!-- 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> <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"
L'Altruiste : La technique ADO 14
14 sur 109
%> <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> <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 = " & _
L'Altruiste : La technique ADO 15
15 sur 109
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>
L'Altruiste : La technique ADO 16
16 sur 109
2.2.1 / Les arguments de ConnectionString
Les arguments de la propriété ConnectionString permettent de spécifier plusieurs valeurs à utiliserpour 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 dedonnées.
File Name= indique le nom d'un fichier spécifique du fournisseur contenant les préréglages desinformations 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 absolueidentifiant une ressource, à l'image d'un fichier ou d'un répertoire.
L'Altruiste : La technique ADO 17
17 sur 109
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 uneunique 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 collectionErrors de l'objet Connection. Ainsi lorsqu'une opération ADO provoque une autre erreur, la collectionErrors 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 quiapparaissent dans la collection Errors à l'image des objets Error. Néanmoins, ces messagesn'entraînent pas l'arrêt de l'exécution du programme.
Les PropriétésProprié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 fichierd'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]
L'Altruiste : La technique ADO 18
18 sur 109
<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>" & _ "</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>
L'Altruiste : La technique ADO 20
20 sur 109
2.4 / L'objet ADO Fields
L'objet ADO Fields représente une colonne d'enregistrement possèdant un type commun dedonné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 pourl'enregistrement courant.
Objet_Field.Value = ValeurValeur = Objet_Field.Value
Les objets Field sont accessibles à partir d'une collection Fields. Ainsi, une boucle For Each...Next permetd'extraire chaque objet Field puis d'appliquer un traitement particulier au champ.
For Each Objet_Field in Objet_Recordset.Fields 'Traitement à appliquer à Objet_Field...
Les CollectionsCollection
Description
Properties
représente toutes les propriétés d'un objet Field
Les Propriétés
L'Altruiste : La technique ADO 21
21 sur 109
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 serontséparées.
Objet_Field.OriginalValue = Valeur_Originale
indique la valeur d'un champ qui a existé dans l'enregistrement avant que n'importe quels changementsn'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.
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éthodesMé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]
L'Altruiste : La technique ADO 22
22 sur 109
<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 %> </tr> </table> </body></html>
L'Altruiste : La technique ADO 23
23 sur 109
2.5 / L'objet ADO Parameter
L'objet ADO Parameter représente un paramètre ou un argument associé à un objet Commanddans 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 leursdiffé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éthodeCreateParameter de l'objet Command. Dans ce cas, les arguments de la méthode permettent d'obtenirdirectement 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 desinstructions SQL prédéfinies accessibles à partir des requêtes de la base de données. Ces requêtesparamétrées ou ces procédures stockées comprennent dans leur code différentes variables, dont lesvaleurs 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 INTAS SELECT T1.champ,..., T2.champNFROM Table AS T1 INNER JOIN Table2 AS T2ON T1.Champ = T2.ChampWHERE T1.ChampX = @variableAND T2.ChampX = @variable2GO
Les CollectionsCollection
Description
Properties
contient toutes les objets Property pour une instance spécifique d'un objet.
Les Propriétés
L'Altruiste : La technique ADO 24
24 sur 109
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 lavaleur 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 serontséparées.
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éthodesMéthode
Description
Objet_Parameter.AppendChunk Données
ajoute des données à un paramètre.
Exemple [voir]
L'Altruiste : La technique ADO 25
25 sur 109
<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%> et de l'éditeur <%=obj_Command.Parameters.Item("Editeur").Value%> </th>
L'Altruiste : La technique ADO 26
26 sur 109
</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.eurosFROM livre AS l INNER JOIN categorie AS c ON l.clecategorie=c.numcategorieWHERE (((l.editeur)=[NomEditeur]) AND ((c.numcategorie)=[CodeCategorie]))ORDER BY l.nom;
L'Altruiste : La technique ADO 27
27 sur 109
2.6 / L'objet ADO Property
L'objet ADO Property représente une caracéristique dynamique d'un objet ADO qui est défini parun 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'importequel 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 collectionProperties. Bien qu'il soit possible de modifier leur valeur, en revanche la modification de leurscaractéristiques est impossible.
Objet.Property = Valeur
Les secondes sont définies par le fournisseur de données sous-jacent, et apparaissent dans lacollection ¨Properties pour l'objet ADO approprié. Les propriétés additionnelles se présentent commedes 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ésProprié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]
L'Altruiste : La technique ADO 28
28 sur 109
<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
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>
L'Altruiste : La technique ADO 29
29 sur 109
2.7 / L'objet ADO Record
L'objet ADO Record représente un enregistrement dans une base de données, un fichier ou unré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éesstructurées, telles que ceux des bases de données, que des données semi-structurées organisées enarborescence 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 unfichier ou un répertoire.
Si le noeud contient d'autres répertoires ou fichiers, alors cette collection de noeuds enfantscorrespond à 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 à unecollection Fields.
Les CollectionsCollection
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ésProprié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
L'Altruiste : La technique ADO 30
30 sur 109
Méthode
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épertoirerepré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>
L'Altruiste : La technique ADO 31
31 sur 109
2.8 / L'objet ADO Recordset
L'objet ADO Recordset contient l'ensemble des enregistrements d'une base de données ou leré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 jeud'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'objetSet Obj_Recordset = Server.CreateObject("ADODB.Recordset")' OuvertureObj_Recordset.Open "SELECT * FROM Table", _ Obj_Connection, _ adOpenKeySet, _ adLockOptimistic
Obj_Recordset.Fields("Nom_Champs") = "Valeur du champs"Obj_Recordset.Update ' Mise à jourObj_Recordset.Close ' Fermeture
Quelques unes des fonctions importantes de l'objet Recordset sont, également, d'explorer un jeud'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 pointeurd'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 suivantLoop
Les CollectionsCollection
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
L'Altruiste : La technique ADO 32
32 sur 109
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.
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 decaractè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.
L'Altruiste : La technique ADO 33
33 sur 109
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.
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 autresopérations globales.
Objet_Recordset.StayInSync = True | False
indique dans un objet Recordset hiérarchique, si la ligne parent doit changer lorsque l'ensemble desenregistrements enfants sous-jacents change.
Les MéthodesMé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 enregistrementavant 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.
L'Altruiste : La technique ADO 34
34 sur 109
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
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 nomde table, un appel de procédure stocké, un URL, ou le nom d'un fichier ou encore l'objet Streamcontenant un objet Recordset stocké avec persistance. L'argument ActiveConnection peut être un nomd'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 completd'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 auxvaleurs spécifiées et déplace la position de la ligne courante vers cette ligne.
Objet_Recordset.Supports(CursorOptionEnum)
L'Altruiste : La technique ADO 35
35 sur 109
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
L'Altruiste : La technique ADO 36
36 sur 109
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 objetRecordset.
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 lenombre 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]
L'Altruiste : La technique ADO 37
37 sur 109
<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 %> <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>
L'Altruiste : La technique ADO 38
38 sur 109
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 êtrecomposé de données textuelles ou binaires et n'est limité que dans la taille par les ressources dusystè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 MarkupLanguage),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 à êtreexécutée comme une alternative à la propriété Commandtext.
Un objet Stream peut également recevoir des résultats provenant d'un fournisseur OLE DB, autrequ'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 contenud'un fichier ou d'un courrier électronique.
Un objet Stream peut être utilisé pour manipuler des champs ou des enregistrements contenant cesflux de données.
Un objet Stream peut être obtenu à partir d'une adresse URL pointant vers un objet qui contient desdonnées binaires ou textuelles. Cet objet peut être un document simple, un objet Record représentant unfichier ou un répertoire.
Un objet Stream par défaut peut être ouvert depuis un objet Record ou Recordset. Il est possibled'obtenir le flux par défaut associé à un enregistrement lorsque l'objet afférent est ouvert, pour éliminer unaller-retour pour l'ouverture du flux.
Les objets Stream, obtenu par instanciation, peuvent être utilisés pour stocker des données aubénéfice d'une application. Différent d'un flux associé à une adresse URL ou du flux par défaut d'unenregistrement, un objet Stream instancié ne possède aucune association avec une source sous-jacentepar défaut.
Set Objet_Stream = Server.CreateObject("ADODB.Stream")
Les Propriétés
L'Altruiste : La technique ADO 39
39 sur 109
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
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
L'Altruiste : La technique ADO 40
40 sur 109
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
écrit du texte dans un objet Stream.
Exemple [voir]
L'Altruiste : La technique ADO 41
41 sur 109
<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>
L'Altruiste : La technique ADO 42
42 sur 109
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 lenombre 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 ForEach...Next.
For Each Objet In Collection ' Instructions...Next
L'Altruiste : La technique ADO 43
43 sur 109
3.1 / La collection ADO Errors
La collection ADO Errors contient tous les objets Error créés en réponse à un seul échec relatif aufournisseur.
Objet_Connection.Errors.Propriété | Méthode
Seul l'objet Connection permet d'accéder à la collection Errors. Bien que paraissant restrictif, il n'estpas obligatoire de faire appel à un objet Connection explicite puisque la propriété ActiveConnection desobjets 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 estré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'indexzéro de la collection Errors.
Les PropriétésProprié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éthodesMé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 fournisseuret propre à ce-dernier.
Exemple [voir]
L'Altruiste : La technique ADO 44
44 sur 109
<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>" & _ "</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>
L'Altruiste : La technique ADO 46
46 sur 109
3.2 / La collection ADO Fields
La collection ADO Fields contient tous les objets Field correspondant chacun à une colonne d'unjeu 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 positiondes champs est connue dans la table de données, l'accès par un index reste la méthode la plusperformante.
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 desenregistrements (objets Field) correspondant à des colonnes de données et contiennent des informationsrelatives 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 Fieldscorrespond à 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ésProprié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
L'Altruiste : La technique ADO 47
47 sur 109
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 enregistrementavant 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 etspé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
sauvegarde les modifications apportées à l'enregistrement en cours d'un objet Recordset.
Exemple [voir]
L'Altruiste : La technique ADO 48
48 sur 109
<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>
L'Altruiste : La technique ADO 49
49 sur 109
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 dedonnées SQL et dans ce cas fonctionnent comme des arguments transmettant leur valeur à une fonctionou 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 parl'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 lacollection.
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) = ValeurObject_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ésProprié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éthodesMé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
L'Altruiste : La technique ADO 50
50 sur 109
met à jour les objets Parameter dans la collection afin de reflèter les objets disponibles à partir dufournisseur et propre à ce-dernier.
Exemple [voir]
L'Altruiste : La technique ADO 51
51 sur 109
<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%> et de l'éditeur <%=obj_Command.Parameters.Item("Editeur").Value%> </th>
L'Altruiste : La technique ADO 52
52 sur 109
</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.eurosFROM livre AS l INNER JOIN categorie AS c ON l.clecategorie=c.numcategorieWHERE (((l.editeur)=[NomEditeur]) AND ((c.numcategorie)=[CodeCategorie]))ORDER BY l.nom;
L'Altruiste : La technique ADO 53
53 sur 109
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 collectionProperties constituée d'objets Property,. Chacun de ces-derniers correspond à une caractéristique del'objet ADO, spécifique au fournisseur.
ADO fonctionnant avec différents types de sources de données, la collection Properties devientdynamique, puisque chacun de ses objets Property sont susceptibles de varier selon le fournisseur OLEDB 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ésProprié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éthodesMéthode
Description
Properties.Refresh
met à jour les objets Property dans la collection afin de reflèter les objets disponibles à partir dufournisseur et propre à ce-dernier.
Exemple [voir]
L'Altruiste : La technique ADO 54
54 sur 109
<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
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>
L'Altruiste : La technique ADO 55
55 sur 109
4 / Les types de curseurs
Un curseur représente un moyen de déplacer un pointeur, d'un enregistrement à un autre dans unobjet Recordset.
ADO définit quatre types de curseurs, dont les principales différences résident d'une part, dans le modede déplacement aussi bien en avant qu'en arrière, et d'autre part dans la visibilité ou l'occultation desjeux d'enregistrements sur lesquels des actions ont été opérés, pour les autres utilisateurs.
Type Constante
Description
Dynamic adOpenDynamic (1)
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 designets.
Keyset adOpenKeyset (2)
se comporte comme un curseur dynamique, hormis qu'il empêche de rendre visible les enregistrementsajouté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.
Static adOpenStatic (3)
fournit une copie statique d'un jeu d'enregistrements utilisé pour rechercher des données ou générer desrapports. 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.
Forward-only adOpenForwardOnly (4)
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 lesperformances dans des situations où il est nécessaire d'effectuer un unique passage à l'intérieur d'unobjet Recordset.
Il faut choisir le type de curseur par l'intermédiaire de la propriété CursorType avant l'ouverture del'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 decurseur forward-only en principe reconnu par tous.
L'Altruiste : La technique ADO 56
56 sur 109
5 / Les constantes ADO
Les constantes permettent de définir différentes caractéristiques prédéfinies pour les méthodes etpropriétés des objets ADO.
x
L'Altruiste : La technique ADO 57
57 sur 109
5.1 / Les constantes AffectEnum
Les constantes AffectEnum indique quels enregistrements sont affectés par une opération.
Objet_Recordset.CancelBatch AffectEnum
Constante Valeur Description
adAffectAll
3
affecte tous les enregistrements s'il n'y a aucun filtre appliqué à l'objetRecordset, si la propriété Filter n'est pas fixée à un critère de chaîne decaractères, alors l'opération affecte tous les enregistrements visiblesdans le chapitre courant. Si la propriété Filter a un membre des constantes FilterGroupEnum ou un tableau de signets, alors l'opérationaffecterait toutes les lignes de l'objet Recordset.
adAffectAllChapters4
affecte tous les enregistrements dans tous les chapitres de mêmesparents de l'objet Recordset incluant ceux non-visibles via n'importe quel propriété Filter qui est couramment appliqué.
adAffectCurrent 1 affecte seulement l'enregistrement courant.
adAffectGroup2
affecte seulement les enregistrements qui satisfont le paramètragecourant de la propriété Filter. Il faut fixer la propriété Filter à une valeurFilterGroupEnum ou un tableau de signets pour utiliser cette option.
L'Altruiste : La technique ADO 58
58 sur 109
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 Description
adBookmarkCurrent 0 démarre à partir de l'enregistrement courant.
adBookmarkFirst 1 démarre à partir du premier enregistrement.
adBookmarkLast 2 démarre à partir du dernier enregistrement.
L'Altruiste : La technique ADO 59
59 sur 109
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 oud'un appel d'une procédure stockée.
adCmdTable 2 évalue CommandText comme une table de noms dont les colonnes sonttoutes 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'enregistrementsstockés avec persistance.
adCmdTableDirect 512 évalue CommandText comme un nom de table dont les colonnes sonttoutes retournées.
L'Altruiste : La technique ADO 60
60 sur 109
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 indique que les signets ne peuvent être comparés.
adCompareNotEqual 3 indique que les signets ne sont pas égaux et non ordonnés.
L'Altruiste : La technique ADO 61
61 sur 109
5.5 / Les constantes ConnectModeEnum
Les constantes ConnectModeEnum indique les permissions disponibles pour la modification desdonnées dans un objet Connection, pour l'ouverture d'un enregistrement Record, ou pour laspé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
0x400000
utilisé en conjonction avec les autres valeurs ShareDeny(adModeShareDenyNone, adModeShareDenyWrite, ou 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.
adModeShareDenyNone16
autorise les personnes à ouvrir une connexion avec n'importequelles permissions. Allows others to open a connection with any permissions. Ni l'accès à la lecture ou à l'écriture ne peuvent êtredénié aux personnes.
adModeShareDenyRead 4 empêche les personnes d'ouvrir une connexion avec lespermissions de lecture.
adModeShareDenyWrite 8 empêche les personnes d'ouvrir une connexion avec lespermissions 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 nepeuvent être déterminées.
adModeWrite 2 indique des êrmissions en écriture seule.
L'Altruiste : La technique ADO 62
62 sur 109
5.6 / Les constante CopyRecordOptionsEnum
Les constante CopyRecordOptionsEnum indiquent le comportement de la méthode CopyRecord.
Objet_Record.CopyRecord CopyRecordOptionsEnum
Constante Valeur Description
adCopyAllowEmulation4
indique que la fournisseur tente de simuler la copie utilisant lesopérations de téléchargement si cette méthode échoue suite à unedestination sur un différent serveur, ou est servi par un différentfournisseur que la source.
adCopyNonRecursive 2 copie le répertoire courant, mais aucun des ses sous-répertoires, vers ladestination. 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 dichierou répertoire existant.
adCopyUnspecified-1
par défaut, exécute l'opération de copie. L'opération échoue si le fichierou le répertoire de destination existe déjà et l'opération copierécursivement.
L'Altruiste : La technique ADO 63
63 sur 109
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 par défaut, utilise les données du fournisseur ou les pilotes de curseurs fournis.
L'Altruiste : La technique ADO 64
64 sur 109
5.8 / Les constantes CursorOptionEnum
Les constantes CursorOptionEnum spécifient quelle fonctionnalité, la méthode Supports doitévaluer.
Objet_Recordset.Supports(CursorOptionEnum)
Constante Valeur Description
adAddNew 0x1000400 supporte la méthode AddNew pour ajouter de nuveaux enregistrements.
adApproxPosition 0x4000 supporte les propriétés AbsolutePosition et AbsolutePage.
adBookmark 0x2000 supporte la propriété Bookmark pour obtenir des accès auxenregistrements 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 sansexécuter tous les changements en cours.
adIndex 0x100000 supporte la propriété Index pour nommer un index.
adMovePrevious0x200
supporte les méthodes MoveFirst, MovePrevious et Move ou GetRowspour déplacer la position de l'enregistrement courant en arrière sansdemander des signets.
adNotify 0x40000 indique que le fournisseur de données sous-jacent supporte desnotifications.
adResync 0x20000 supporte la méthode Resync pour mettre à jour le curseur avec lesdonné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 supporte les méthodes UpdateBatch et CancelBatch pour envoyer des groupes de changements au fournisseur.
L'Altruiste : La technique ADO 65
65 sur 109
5.9 / Les constantes CursorTypeEnum
Les constantes EditModeEnum spécifient les positions d'édition d'un enregistrement.
Objet_Recordset.EditMode = EditModeEnum
Constante Valeur Description
adEditNone 0 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 passauvegardé.
adEditAdd2
indique que la méthode AddNew a été appelée et l'enregistrement courantdans la copie temporaire est un nouvel enregistrement qui n'a pas étésauvegardé dans la base de données.
adEditDelete 4 indique que l'enregistrement courant a été supprimé.
L'Altruiste : La technique ADO 66
66 sur 109
5.10 / Les constantes DataTypeEnum
Les constantes DataTypeEnum spécifient le type de données des objets Field, Parameter ouProperty.
Objet_Field.Type = DataTypeEnum
L'Altruiste : La technique ADO 67
67 sur 109
Constante Valeur Description
AdArray 0x2000 indique une valeur indicatrice toujours combinée avec une autre constantede 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).
adFileTime 64 indique une valeur de 64 bit représentant le nombre de 100 nanosecondesd'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 échellefixées (DBTYPE_NUMERIC).
adPropVariant 138 indique un Automation PROPVARIANT (DBTYPE_PROP_VARIANT).
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).
L'Altruiste : La technique ADO 68
68 sur 109
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.
L'Altruiste : La technique ADO 69
69 sur 109
5.11 / Les constantes CursorTypeEnum
Les constantes EditModeEnum spécifient les positions d'édition d'un enregistrement.
Objet_Recordset.EditMode = EditModeEnum
Constante Valeur Description
adEditNone 0 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 passauvegardé.
adEditAdd2
indique que la méthode AddNew a été appelée et l'enregistrement courantdans la copie temporaire est un nouvel enregistrement qui n'a pas étésauvegardé dans la base de données.
adEditDelete 4 indique que l'enregistrement courant a été supprimé.
L'Altruiste : La technique ADO 70
70 sur 109
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 unenregistrement.
adRsnMove 10 indique qu'une opération a déplacé le pointeur d'enregistrement à l'intérieurd'un objet Recordset.
adRsnMoveFirst 12 indique qu'une opération a déplacé le pointeur d'enregistrement au premierenregistrement dans l'objet Recordset.
adRsnMoveLast 15 indique qu'une opération a déplacé le pointeur d'enregistrement au dernierenregistrement dans l'objet Recordset.
adRsnMoveNext 13 indique qu'une opération a déplacé le pointeur d'enregistrement auprochain enregistrement dans l'objet Recordset.
adRsnMovePrevious 14 indique qu'une opération a déplacé le pointeur d'enregistrement aupré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 dedonné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.
L'Altruiste : La technique ADO 71
71 sur 109
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énementsurvenu.
adStatusCantDeny 3 indique que l'opération ne peut demander l'annulation de l'opération encours.
adStatusErrorsOccurred 2 indique que l'opération qui a provoqué l'événement, a échoué en raisond'une ou plusieurs erreurs.
adStatusOK 1 indique que l'opération qui a provoqué l'événement, a été réussie.
adStatusUnwantedEvent 5 empêche des notification ultérieures avant que la méthoded'événement ait fini son exécution.
L'Altruiste : La technique ADO 72
72 sur 109
5.14 / Les constantes ExecuteOptionEnum
Les constantes ExecuteOptionEnum spécifie comment un fournisseur devrait exécuter unecommande.
Objet_Recordset.Open Source, ActiveConnection, _ CursorTypeEnum, LockTypeEnum, ExecuteOptionEnum
Constante Valeur Description
adAsyncExecute0x10
indique que la commande doit s'exécuter d'une manière asynchrone.Cette valeur ne peut être combinée avec la valeuradCmdTableDirect des constantes CommandTypeEnum.+6
adAsyncFetch0x20
indique que les lignes restantes après la quantité initiale spécifiéedans la propriété CacheSize devrait être retrouvénon-simultanément.
adAsyncFetchNonBlocking
0x40
indique que la principale unité d'exécution ne se bloque jamais tantque l'opération de récupération est en cours. Si les lignesdemandées n'ont pas été retrouvées, la ligne courante se déplaceautomatiquement à la fin du ficher. En ouvrant un objet Recordset àpartir d'un objet Stream contenant un objet Recordset stocké avecpersistance, elle n'aurait aucun effet, l'opération serait synchrone etbloquée. Egalement, elle n'a pas d'effet lorsque l'optionadCmdTableDirect est utilisée pour ouvrir un jeu d'enregistrements.
adExecuteNoRecords
0x80
indique que CommandText est une commande ou une procédurestockée qui ne retourne pas des lignes. Si quelques lignes sontretrouvées, elles sont mises de côté et non retournées. Elle peutseulement être passée comme un paramètre optionnel à la méthode>Execute d'un objet Connection ou Command.
adExecuteStream
0x400
indique que le résultat d'une exécution d'une commande devrait êtreretourné comme un flux (Stream). Elle est utilisable seulement comme paramètre optionnel de la méthode Execute de l'objet Command.
adExecuteRecord
indique que CommandText est une commande ou une procédurestockée qui retourne une unique ligne qui devrait être retournéecomme un objet Record.
adOptionUnspecified -1 indique que la commande est non-spécifiée.
L'Altruiste : La technique ADO 73
73 sur 109
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
adFldCacheDeferred0x1000
indique que le fournisseur stocke en mémoire les valeurs dechamps et les lectures ultérieures sont effectuées à partir de laémoire cache.
adFldFixed 0x10 indique que le champ contient des données d'une longueurfixées.
adFldIsChapter0x2000
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 chapitresont utilisés avec la formation de données ou les filtres.
adFldIsCollection0x40000
indique que le champ spécifie que la ressource représentéepar l'enregistrement est une collection d'autres ressources, comme un répertoire, plutôt qu'une simple ressource commeun fichier texte.
adFldIsDefaultStream 0x20000 indique que le champ contient l'objet Stream par défaut pour laressource 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.
adFldLong0x80
indique que le champ est un champ binaire de type Long et qu'il est possible d'utiliser les méthodes AppendChunk et GetChunk.
adFldMayBeNull 0x40 indique qu'il est possible de lire des valeurs nulles à partir deschamps.
adFldMayDefer0x2
indique que le champ est renvoyé, les valeurs de champ nesont pas retrouvées à partir de la source de données avecl'enregistrement entier, mais seulement lors de leur accèsexplicite.
adFldNegativeScale0x4000
indique que le champ représente une valeur numérique d'unecolonne qui supporte des valeurs d'échelle négatives. L'échelleest spécifiée par la propriété NumericScale.
adFldRowID0x100
indique que le champ contient un identificateur de ligne persistant qui ne peut être accédé en écriture et n'a aucunevaleur significative sauf pour identifier la ligne.
adFldRowVersion 0x200 indique que le champ contient plusieurs types de date oud'heure utilisés pour suivre à la trace des mises à jour.
adFldUnknownUpdatable 0x8 indique que le fournisseur ne peut déterminer s'il est possibled'écrire sur l'enregistrement.
adFldUnspecified -10xFFFFFFFF
indique que le fournisseur ne spécifie pas les attributs dechamps.
adFldUpdatable 0x4 indique que vous pouvez écrire sur l'enregistrement.
L'Altruiste : La technique ADO 74
74 sur 109
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'ADOvers le fournisseur OLE DB.
adFieldCannotComplete20
indique que le serveur de l'URL spécifiée par la sourceIndicates that the server of the URL specified by Source n'a pu achever l'opération.
adFieldCannotDeleteSource23
indique que durant une opération de déplacement, unearborescence ou un sous-arbrescence a été déplacée à unnouvel 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é sansune perte de données.
adFieldCantCreate 7 indique que le champ n'a pas pu être ajouté car lefournisseur a dépassé une limitation.
adFieldDataOverflow 6 indique que les données retournées à partir du fournisseuront 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 dedonnées dans la source.
adFieldIntegrityViolation 10 indique que le champ ne peut pas être modifié car il est uneentité calculée ou dérivée.
adFieldInvalidURL 17 indique que l'URL de la source de données contient descaractè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.
adFieldOutOfSpace22
indique que le fournisseur est incapable d'obtenir suffisamment d'espace de stockage pour finir une opérationde déplacement ou de copie.
adFieldPendingChange
indique soit que le champ a été supprimé et alors réajoutéavec probablement un autre type de données, ou que lavaleur du champ qui avait précédemment un statutadFieldOK, ait changé.
adFieldPendingDelete 0x20000 indique que l'opération de suppression a provoqué que lestatut 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érationa provoqué que le statut a été fixé.
adFieldPendingUnknownDelete0x100000
indique que le fournisseur ne peut déterminer quel opérationa provoqué que le statut a été fixé et que le champ and thatthe field will be deleted from the Fields collection after the Update method is called.
adFieldPermissionDenied 9 Indicates that the field cannot be modified because it is defined as read-only.
L'Altruiste : La technique ADO 75
75 sur 109
adFieldReadOnly 24 indique que le champ dans la source de onnées est défini enlecture seule.
adFieldResourceLocked18
indique que le fournisseur a été incapable d'exécuter lesopérations car la source de onnées est verrouillée par une ouplusieurs 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 lasource de données ppour le champ.
adFieldSignMismatch5
indique que la valeur de données retournée par le fournisseura été signée, mais le type de données de la valeur de champd'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 lorsd'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.
L'Altruiste : La technique ADO 76
76 sur 109
5.17 / Les constantes FilterGroupEnum
Les constantes FilterGroupEnum indique les groupes d'enregistrements devant être filtré à partird'un objet Recordset.
Objet_Recordset.Filter = FilterGroupEnum
Constante Valeur Description
adFilterAffectedRecords 2 filtre pour voir essentiellement les enregistrements affectés par lesderniers appels à Delete, Resync, UpdateBatch ou CancelBatch.
adFilterConflictingRecords 5 filtre pour voir les enregistrements qui sont en échec lors de ladernière mise à jour de groupe.
adFilterFetchedRecords3
filtre pour voir les enregistrements dans le cache courant qui est lerésultat du dernier appel pour retrouver les enregistrements à partirde la base de données.
adFilterNone 0 enlève le filtre courant et restaure tous les enregistrements pour lesvoir.
adFilterPendingRecords1
filtre pour voir seulement les enregistrements qui ont été modifiésmais n'ant pas encore été envoyés sur le serveur. Il est applicableseulement pour le mode de mises à jour par lot.
L'Altruiste : La technique ADO 77
77 sur 109
5.18 / La constante GetRowsOptionEnum
La constante GetRowsOptionEnum spécifie combien d'enregistrements à retrouver à partir d'unobjet Recordset.
Objet_Recordset.GetRows(GetRowsOptionEnum, _ BookmarkEnum, Enregistrements)
Constante Valeur Description
adGetRowsRest-1
retrouve le reste des enregistrements dans l'objet Recordset à partir soit de laposition courante, soit d'un signet spécifié par le paramètre BookmarkEnum de la méthode GetRows.
L'Altruiste : La technique ADO 78
78 sur 109
5.19 / Les constantes IsolationLevelEnum
Les constantes IsolationLevelEnum indique le niveau d'isolation de transaction pour un objetConnection.
Objet_Connection.IsolationLevel = IsolationLevelEnum
Constante Valeur Description
adXactUnspecified -1 indique que le fournisseur utilise un niveau d'isolation différent quecelui 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.
adXactBrowse 256 indique qu'à partir d'une transaction, vous pouvez voir deschangements non engagés d'autres transactions.
adXactReadUncommitted 256 identique à adXactBrowse.
adXactCursorStability4096
indique qu'à partir d'une transaction, vous pouvez voir leschangements d'autres transactions seulement après avoir étéengagées.
adXactReadCommitted 4096 identique à adXactCursorStability.
adXactRepeatableRead65536
indique qu'à partir d'une transaction, vous ne pouvez voir leschangments opérés dans d'autres transactions, mais que desrequêtes peuvent récupérer de nouveaux objets Recordset.
adXactIsolated 1048576 indique que des transactions sont menées dans l'isolation d'autrestransactions.
adXactSerializable 1048576 identique à adXactIsolated.
L'Altruiste : La technique ADO 79
79 sur 109
5.20 / Les constantes LineSeparatorsEnum
Les constantes LineSeparatorsEnum indiquent le caractère à utiliser comme séparateur de lignedans 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.
L'Altruiste : La technique ADO 80
80 sur 109
5.21 / Les constantes LockTypeEnum
Les constantes LockTypeEnum indique le type de verrou placé sur les enregistrements durantl'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.
adLockOptimistic3
indique le verrouillage optimiste, enregistrement par enregistrement. Le fournisseur utlise le verouillage optimiste, verrrouillant seulement lors d'un appel de la méthode Update.
adLockPessimistic2
indique le verrouillage optimiste, enregistrement par enregistrement. Le fournisseur fait qu'il est nécessaire d'assurer le succès de l'édition desenregistrements, 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.
L'Altruiste : La technique ADO 81
81 sur 109
5.22 / Les constantes MarshalOptionsEnum
Les constantes MarshalOptionsEnum indique quels enregistrements devraient être retournés auserveur.
Objet_Recordset.MarshalOptions = MarshalOptionsEnum
Constante Valeur Description
adMarshalAll 0 Default. Returns all rows to the server.
adMarshalModifiedOnly 1 Returns only modified rows to the server.
L'Altruiste : La technique ADO 82
82 sur 109
5.23 / Les constantes MoveRecordOptionsEnum
Les constantes MoveRecordOptionsEnum indiquent le comportement de la méthode MoveRecordde l'objet Record.
Objet_Record.MoveRecord(Source, Destination, _ Nom_Utilisateur, Mot_Passe, _ MoveRecordOptionsEnum, Bool_Asynchrone)
Constante Valeur Description
adMoveUnspecified-1
par défaut, exécute l'opération de déplacement. L'opération échoue sile fichier ou le répertoire de destination existe déjà et l'opération met àjour les liens hypertextes.
adMoveOverWrite 1 recopie le fichier ou le répertoire de destination, même s'il existe déjà.
adMoveDontUpdateLinks
2
modifie le comportement de la méthode MoveRecord par défaut parune 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 estcapable. 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 liensn'ont pas été fixés.
adMoveAllowEmulation
4
demande que le fournisseur tente de simuler le mouvement. Si la tentative de déplacer l'enregistrement échoue parceque l'URL dedestination est sur un serveur différent ou servi par un fournisseurdifférent que la source, ceci peut provoquer l'accroissement de latenceou la perte de données suite à des capacités de fournisseurdifférentes en déplaçant de ressources entre des fournisseurs.
L'Altruiste : La technique ADO 83
83 sur 109
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.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
84 sur 109 04/01/2005 09:18
5.25 / Les constantes ParameterDirectionEnum
Les constantes ParameterDirectionEnum indiquent si l'objet Parameter représente un paramètreentré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 0 indique que la direction de paramètre est inconnue.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
85 sur 109 04/01/2005 09:18
5.26 / Les constantes PersistFormatEnum
Les constantes PersistFormatEnum spécifient le format de sauvegarde d'un objet Recordset.
bjet_Recordset.Save Destination, PersistFormatEnum
Constante Valeur Description
adPersistADTG 0 indique le format Microsoft Advanced Data TableGram (ADTG).
adPersistADO1
indique le format XML propre à ADO est employé. cette valeur estidentique à adPersistXML et est incluse pour une compatibilitédescendante.
adPersistXML 1 indique le format XML (Extensible Markup Language).
adPersistProviderSpecific 2 indique que le fournisseur continue à utiliser le propre format del'objet Recordset.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
86 sur 109 04/01/2005 09:18
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).
adPosUnknown -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.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
87 sur 109 04/01/2005 09:18
5.28 / Les constantes RecordCreateOptionsEnum
Les constantes RecordCreateOptionsEnum spécifient si un enregistrement existant doit être ouvertou un nouvel enregistrement doit être creéé par la méthode Open de l'objet Record. Les valeurspeuvent être combinées avec l'opérateur AND.
Objet_Record.Open Source, ActiveConnection, RecordCreateOptionsEnum, RecordOpenOptionsEnum, Nom_Utilisateur, Mot_Passe
Constante Valeur Description
adCreateCollection
0x2000
crée un nouvel enregistrement au noeud spécifié par le paramètreSource. Si la source pointe vers un noeud existant, alors une erreur de type run-time se produit, à moins que adCreateCollectionsoit 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érateurOR est utilisé avec cette valeur et une des valeurs indicatrices decréation, si l'adresse URL de la source pointe vers un noeud ou unenregistrement 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 del'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.
adOpenIfExists
0x2000000
modifie les indicateurs de création adCreateCollection, adCreateNonCollection, et adCreateStructDoc. Lorsque OR estutilisé 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. Cettevaleur ne peut être utilisé avec adCreateOverwrite.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
88 sur 109 04/01/2005 09:18
5.29 / Les constantes RecordOpenOptionsEnum
Les constantes RecordOpenOptionsEnum spécifient les options pour l'ouverture d'un objetRecord. 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 Description
adDelayFetchFields
0x8000
indique au fournisseur que les champs associés àl'enregistrement n'a pas besoin d'être retrouvé initialement, maispeut l'être à la première tentative d'accéder à l'enregistrement. Lecomportement par défaut indiqué par l'absence de cet indicateur,est de retrouver tous les champs de l'enregistrement.
adDelayFetchStream
0x4000
indique au fournisseur que l'objet Stream par défaut associé àl'enregistrement n'a pas besoin d'être récupérer initiallement. Lecomportement par défaut, indiqué par l'absece de cet indicateur,est de retrouver l'objet Stream par défaut associé àl'enregistrement..
adOpenAsync 0x1000 indique que l'enregistrement est ouvert dans le mode asynchrone.
adOpenExecuteCommand0x10000
indique que la Source contient une commande textuelle qui doitêtre exécutée. Cette valeur est équivalente à l'option adCmdTextde la méthode Open de l'objet Recordset.
adOpenRecordUnspecified -1 par défaut, indique qu'aucune option n'est spécifiée.
adOpenOutput0x800000
indique que la source pointe vers un noeud contenant un scriptexécutable, alors l'enregistrement ouvert contiendra le résultat del'exécution du script. Cette valeur est seulement valide avec desenregistrements ne faisant pas parti de collection.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
89 sur 109 04/01/2005 09:18
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é carl'opération a été annulée.
adRecCantRelease 0x400 indique que le nouvel enregistrement n'a pas été sauvegardé carl'enregistrement existant a été verrouillé.
adRecConcurrencyViolation 0x800 indique que l'enregistrement n'a pas été sauvegardé car leconsentement optimiste était en utilisation.
adRecDBDeleted 0x40000 indique que l'enregistrement a déjà été supprimé de la source dedonnées.
adRecDeleted 0x4 indique que l'enregistrement a été supprimé.
adRecIntegrityViolation 0x1000 indique que l'enregistrement n'a pas été sauvegardé carl'utilisateur a violé les contraintes d'intégrité.
adRecInvalid 0x10 indique que l'enregistrement n'a pas été sauvegardé car sonsignet n'est pas valide.
adRecMaxChangesExceeded 0x2000 indique que l'enregistrement n'a pas été sauvegardé car il y enavait 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 auraitaffecté des enregistrements multiples.
adRecNew 0x1 indique que l'enregistrement est nouveau.
adRecObjectOpen 0x4000 indique que l'enregistrement n'a pas été sauvegardé à caused'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é carl'ordinateur a démarré en dépassement de mémoire.
adRecPendingChanges 0x80 indique que l'enregistrement n'a pas été sauvegardé car il seréfère à une insertion en cours.
adRecPermissionDenied 0x10000 indique que l'enregistrement n'a pas été sauvegardé carl'utilisateur a des permissions insuffisantes.
adRecSchemaViolation 0x20000 indique que l'enregistrement n'a pas été sauvegardé car il violé lastructure sous-jacente de la base de données.
adRecUnmodified 0x8 indique que l'enregistrement n'a pas été modifié.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
90 sur 109 04/01/2005 09:18
5.31 / Les constantes RecordTypeEnum
Les constantes RecordTypeEnum indiquent le type de l'objet Record.
Objet_Record.RecordType = RecordTypeEnum
Constante Valeur Description
adSimpleRecord 0 indique un enregistrement simple ne contenant pas de noeuds enfants.
adCollectionRecord 1 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 desdocuments structurés COM.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
91 sur 109 04/01/2005 09:18
5.32 / Les constantes ResyncEnum
Les constantes ResyncEnum indique si les valeurs sous-jacentes sont recopiées par un appel à laméthode Resync.
Objet_Recordset.Resync AffectEnum, ResyncEnum
Constante Valeur Description
adResyncAllValues 2 par défaut, recopie les données et durant les mises à jour sontannulées.
adResyncUnderlyingValues 1 ne recopie pas les données, et durant les mises à jour ne sont pasannulés.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
92 sur 109 04/01/2005 09:18
5.33 / Les constantes SaveOptionsEnum
Les constantes SaveOptionsEnum spécifient si un fichier doit être créé ou recopié lors de lasauvegarde à partir d'un objet Stream. Les valeurs peuvent être combinées avec un opérateur AND.
Objet_Stream.SaveToFile Fichier, SaveOptionsEnum
Constante Valeur Description
adSaveCreateNotExist 1 par défaut, crée un nouveau fichier si le fichier spécifié par le paramètreFichier n'existe pas déjà.
adSaveCreateOverWrite 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à.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
93 sur 109 04/01/2005 09:18
5.34 / Les constantes SchemaEnum
Les constantes SchemaEnum indique le type de schéma d'un jeu d'enregistrements Recordset quela méthode OpenSchema récupère.
Set Objet_Recordset = _ Objet_Connection.OpenSchema(SchemaEnum, _ Critères, ID_Schema)
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
94 sur 109 04/01/2005 09:18
Constante
Valeur Description Contraintes
adSchemaAsserts
0 retourne les assertions définies dans le catalogue qui sontpossédées par un utilisateur donné.
(ASSERTIONS Rowset)CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAME
adSchemaCatalogs
1 retourne les attributs physiques associés aux cataloguesaccessibles du DBMS.
(CATALOGS Rowset)CATALOG_NAME
adSchemaCharacterSets
2 retourne les jeux de caractères définis dans lecataloguequi sont accessible à un utilisateur donné.
(CHARACTER_SETS Rowset)CHARACTER_SET_CATALOGCHARACTER_SET_SCHEMACHARACTER_SET_NAME
adSchemaCheckConstraints
5 retourne les contraintes vérifiées définies dans lecatalogue qui sont possédées par un utilisateur donné.
(CHECK_CONSTRAINTS Rowset)CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAME
adSchemaCollations
3 retourne les comparaisons de caractères définies dans lecatalogue qui sont accessibles à un utilisateur donné.
(COLLATIONS Rowset)COLLATION_CATALOGCOLLATION_SCHEMACOLLATION_NAME
adSchemaColumnPrivileges
13retourne les privilèges sur des colonnes de tables définisdans le catalogue qui sont disponible ou accordés à unutilisateur donné.
(COLUMN_PRIVILEGES Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEGRANTORGRANTEE
adSchemaColumns
4 retourne les colonnes de tableaux définies dans lecatalogue qui sont accessibles à un utilisateur donné.
(COLUMNS Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAME
adSchemaColumnsDomainUsage
11retourne les colonnes définies dans le catalogue qui sontdépendants d'un domaine défini dans le catalogue etpossédé par un utilisateur donné.
(COLUMN_DOMAIN_USAGE Rowset)DOMAIN_CATALOGDOMAIN_SCHEMADOMAIN_NAMECOLUMN_NAME
adSchemaConstraintColumnUsage
6
retourne les colonnes utilisées par des contraintesréférentielles, contraintes uniques, contraintes vérifiées, etassertions, définis dans le catalogue et possédés par unutilisateur donné.
(CONSTRAINT_COLUMN_USAGE Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAME
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
95 sur 109 04/01/2005 09:18
adSchemaConstraintTableUsage
7
retourne les tableaux qui sont utilisés par des contraintesréférentielles, contraintes uniques, contraintes vérifiées etassertions définis dans le catalogue et possédés par unutilisateur donné.
(CONSTRAINT_TABLE_USAGE Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAME
adSchemaCubes
32 retourne les informations à propos des cubes disponiblesdans un schéma.
(CUBES Rowset*)CATALOG_NAMESCHEMA_NAMECUBE_NAME
adSchemaDBInfoKeywords
30 retourne une liste de mots-clés d'un fournisseurspécifique. (IDBInfo::GetKeywords *)
adSchemaDBInfoLiterals
31 retourne une liste de littéraux d'un fournisseur spécifiqueutilisés dans les commandes textuelles. (IDBInfo::GetLiteralInfo *)
adSchemaDimensions
33 retourne les informations à propos des dimensions d'uncube donné.
(DIMENSIONS Rowset *)CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_NAMEDIMENSION_UNIQUE_NAME
adSchemaForeignKeys
27 retourne les colonnes clés extérieurs définies dans lecatalogue par un utilisateur donné.
(FOREIGN_KEYS Rowset)PK_TABLE_CATALOGPK_TABLE_SCHEMAPK_TABLE_NAMEFK_TABLE_CATALOGFK_TABLE_SCHEMAFK_TABLE_NAME
adSchemaHierarchies
34 retourne les informations à propos des hiérarchiesdisponibles dans un dimension.
(HIERARCHIES Rowset *)CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_NAMEHIERARCHY_UNIQUE_NAME
adSchemaIndexes
12 retourne les index définis dans le catalogue qui sontpossédés par un utilisateur donné.
(INDEXES Rowset)TABLE_CATALOGTABLE_SCHEMAINDEX_NAMETYPETABLE_NAME
adSchemaKeyColumnUsage
8 retourne les colonnes définies dans le catalogue qui sontcontraint comme des clés par un utilisateur donné.
(KEY_COLUMN_USAGE Rowset)CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAME
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
96 sur 109 04/01/2005 09:18
COLUMN_NAME
adSchemaLevels
35 retourne les informations à propos des niveauxdisponibles dans un dimension.
(LEVELS Rowset*)CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_UNIQUE_NAMELEVEL_NAMELEVEL_UNIQUE_NAME
adSchemaMeasures
36 retourne les informations à propos des mesures.
(MEASURES Rowset *)CATALOG_NAMESCHEMA_NAMECUBE_NAMEMEASURE_NAMEMEASURE_UNIQUE_NAME
adSchemaMembers
38 retourne les informations à propos des membres.
(MEMBERS Rowset *)CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_UNIQUE_NAMELEVEL_UNIQUE_NAMELEVEL_NUMBERMEMBER_NAMEMEMBER_UNIQUE_NAMEMEMBER_CAPTIONMEMBER_TYPE
adSchemaPrimaryKeys
28 retourne les colonnes des clés primaires définies dans lecatalogue par un utilisateur donné.
(PRIMARY_KEYS Rowset)PK_TABLE_CATALOGPK_TABLE_SCHEMAPK_TABLE_NAME
adSchemaProcedureColumns
29 retourne les informations à propos des colonnes et desjeux de lignes retournés par des procédures.
(PROCEDURE_COLUMNS Rowset)PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMECOLUMN_NAME
adSchemaProcedureParameters
26 retourne les informations à propos des paramètres etretourne les codes des procédures.
(PROCEDURE_PARAMETERS Rowset)PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPARAMETER_NAME
adSchemaProcedures
16 retourne les rocédures définies dans le catalogue qui sontpossédés par un utilisateur donné.
(PROCEDURES Rowset)PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPROCEDURE_TYPE
adSchemaProperties
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
97 sur 109 04/01/2005 09:18
37 retourne les informations à propos des propriétésdisponibles pour chaque niveau des dimensions.
(PROPERTIES Rowset *)CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_UNIQUE_NAMELEVEL_UNIQUE_NAMEMEMBER_UNIQUE_NAMEPROPERTY_TYPEPROPERTY_NAME
adSchemaProviderSpecific
-1 utilisé si le fournisseur définit ses propres requêtes deschéma non-standards.
adSchemaProviderTypes
22 retourne les types de données supportés par lefournisseur de données.
(PROVIDER_TYPES Rowset)DATA_TYPEBEST_MATCH
adSchemaReferentialConstraints
9 retourne les contraintes référentielles définies dans lecatalogue qui sont possédées par un utilisateur donné.
(REFERENTIAL_CONSTRAINTS Rowset)CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAME
adSchemaSchemata
17 retourne les schémas qui sont possédés par un utilisateurdonné.
(SCHEMATA Rowset)CATALOG_NAMESCHEMA_NAMESCHEMA_OWNER
adSchemaSQLLanguages
18retourne les niveaux de conformité, les options, et lesdialectes supportés par le traitement de données SQLdéfini dans le catalogue.
(SQL_LANGUAGES Rowset)
adSchemaStatistics
19 retourne les statistiques définies dans le catalogue quisont possédées par un utilisateur donné.
(STATISTICS Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAME
adSchemaTableConstraints
10 retourne les tableaux de contraintes définis dans lecatalogue qui sont possédés par un utilisateur donné.
(TABLE_CONSTRAINTS Rowset)CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECONSTRAINT_TYPE
adSchemaTablePrivileges
14retourne les provilèges sur des tableaux définis dans lecatalogue qui sont disponibles ou concédés par unutilisateur donné.
(TABLE_PRIVILEGES Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAMEGRANTORGRANTEE
adSchemaTables
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
98 sur 109 04/01/2005 09:18
20 retourne les tableaux définis dans le catalogue qui sontaccessibles à un utilisateur donné.
(TABLES Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAMETABLE_TYPE
adSchemaTranslations
21 retourne les traductions de caractères définis dans lecatalogue qui sont accessibles à un utilisateur donné.
(TRANSLATIONS Rowset)TRANSLATION_CATALOGTRANSLATION_SCHEMATRANSLATION_NAME
adSchemaTrustees
39 réservé pour une future utilisation.
adSchemaUsagePrivileges
15retourne les privilèges en usage sur des objets définisdans le catalogue qui sont disponibles et concédés par unutilisateur donné.
(USAGE_PRIVILEGES Rowset)OBJECT_CATALOGOBJECT_SCHEMAOBJECT_NAMEOBJECT_TYPEGRANTORGRANTEE
adSchemaViewColumnUsage
24retourne les colonnes sur lesquelles sont vus des tableauxdéfinis dans le catalogue et possédés par un utilisateurdonné, sont dépendant.
(VIEW_COLUMN_USAGE Rowset)VIEW_CATALOGVIEW_SCHEMAVIEW_NAME
adSchemaViews
23 retourne les vues définies dans le catalogue qui sontaccessibles à un utilisateur donné.
(VIEWS Rowset)TABLE_CATALOGTABLE_SCHEMATABLE_NAME
adSchemaViewTableUsage
25retourne les tableaux sur lesquels des tableaux sont vus,définis dans le catalogue et possédés par un utilisateurdonné, sont dépendants.
(VIEW_TABLE_USAGE Rowset)VIEW_CATALOGVIEW_SCHEMAVIEW_NAME
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
99 sur 109 04/01/2005 09:18
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 Valeur Description
adSearchBackward-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 estpositionné à BOF (Before Of File).
adSearchForward1
recherche en avant, stoppant à la fin de l'objet Recordset. Si une correspondance n'est pas trouvée, le pointeur d'enregistrement estpositionné à EOF (End Of File).
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
100 sur 109 04/01/2005 09:18
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 devaleurs se serait présentée.
adSeekBeforeEQ 16 recherche soit un index égal au tableau de valeurs, soit juste avant où cettecorrespondance se serait présentée.
adSeekBefore 32 recherche une clé juste avant où une correspondance avec le tableau devaleurs se serait présentée.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
101 sur 109 04/01/2005 09:18
5.37 / Les constantes de Stat
Les constantes de la méthode Stat, c'est-à-dire StatStg et StatFlag permettent de récupérer uneinformation à 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 seremplit pas dans tous les champs de la structure.
Le paramètre StatFlag indique que cette méthode ne retourne aucuns des membres dans lastructure de STATSTG, sauvegardant ainsi une opération d'allocation de mémoire. Les valeurs sontfixées selon les valeurs possibles de STATFLAG.
Constante Valeur
STATFLAG_DEFAULT 0
STATFLAG_NONAME 1
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
102 sur 109 04/01/2005 09:18
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 Valeur Description
adOpenStreamAsync 1 ouvre l'objet Stream dans un mode asynchrone.
adOpenStreamFromRecord
4
identifie le contenu du paramètre Source pour être un objet Recorddéjà ouvert. Le comportement par défaut est de traiter la Sourcecomme une URL qui pointe directement vers un noeud dans une arborescence. Le flux par défaut associé avec ce noeud est ouvert.
adOpenStreamUnspecified -1 par défaut, indique l'ouverture de l'objet Stream avec les options pardéfaut.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
103 sur 109 04/01/2005 09:18
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 2 par défaut, indique des données textuelles converties dans le jeu de caractèresspécifié.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
104 sur 109 04/01/2005 09:18
5.40 / Les constantes StreamWriteEnum
Les constantes StreamWriteEnum indiquent si un séparateur de ligne est ajouté à une chaîne decaractè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 1 é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.
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
105 sur 109 04/01/2005 09:18
5.41 / La constante StringFormatEnum
La constante StringFormatEnum indique le format à utiliser pour construire la chaîne de caractèresretournée suite à la récupération des enregistrements.
Objet_Recordset.GetString(StringFormatEnum)
Constante Valeur Description
adClipString 2 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).
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
106 sur 109 04/01/2005 09:18
6 / Les commanes SQL
Les commandes select et FROMsont 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 champsou de colonnes par une virgule. Pour sélectionner tous les champs, il suffit d'utiliser une étoile à la placedes nomds de champs.
select nom_champ,..., nom_champN FROM nom_table
LibrairieISBN Livre Editeur Prix
1565926978 ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS)
O'REILLY 330.00
1565929489 ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS) O'REILLY 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' retourneORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS)ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS)INITIATION A SQL - COURS ET EXERCICES CORRIGESSQLMAITRISEZ SQLSQLKIT DE FORMATION MICROSOFT SQL SERVER 2000 ADMINISTRATION SYSTEME
La commande DISTINCTsé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, elleconstitue la commande par défaut de select.
select DISTINCT nom_champ FROM nom_table
select DISTINCT Livre FROM Librairie
' retourneORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS)ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS)INITIATION A SQL - COURS ET EXERCICES CORRIGESSQLMAITRISEZ SQLKIT DE FORMATION MICROSOFT SQL SERVER 2000 ADMINISTRATION SYSTEME
La commande WHEREpose 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 (= | <> | != | > | > = | !> | < | <= |!<)et séparés par des opérateurs booléens AND, OR ou NOT.
select "nom_champ"FROM "nom_table"
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
107 sur 109 04/01/2005 09:18
WHERE "condition"
select Livre FROM Librairie WHERE Prix < 200
' retourneINITIATION A SQL - COURS ET EXERCICES CORRIGESSQLSQL
La commande GROUP BYspécifie des groupes dans lesquels les lignes de sortie doivent être placées et calcule une valeur derésumé pour chacun des groupes si des fonctions d'agrégation sont employées avec la commande select.
select nom_champ,Fonction_AgregationFROM nom_tableGROUP BY nom_champ2
select Editeur,SUM(Prix)FROM LibrairieGROUP BY Editeur
' retourneO'REILLY 616.00EYROLLES 183.00CAMPUSPRESS FRANCE 62.00WROX PRESS 286.00ENI 140.00MICROSOFT PRESS 284.00
La commande HAVINGspécifie un critère de recherche pour un groupe ou une fonction d'agrégation. HAVING estgénralement utilisé avec GROUP BY, sinon HAVING se comporte à l'instar de WHERE.
select nom_champ,Fonction_AgregationFROM nom_tableGROUP BY nom_champ2HAVING "Condition"
select Editeur,SUM(Prix)FROM LibrairieGROUP BY EditeurHAVING SUM(Prix) > 200
' retourneO'REILLY 616.00WROX PRESS 286.00MICROSOFT PRESS 284.00
Les aliasconcourrent à améliorer la lisibilité d'une requête. Il existe deux types d'alias : les alias de tables et lesalias de champs. Les alias peuvent également s'appliquer à une fonction d'agrégation retournant desdonnées sous forme de colonnes.
select Alias_table.nom_champ Alias_champFROM nom_table AS Alias_table
select L.Editeur Edi,SUM(L.Prix) FFROM Librairie As LGROUP BY EdiHAVING F > 200
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
108 sur 109 04/01/2005 09:18
' retourneO'REILLY 616.00WROX PRESS 286.00MICROSOFT PRESS 284.00
Les commandes de jointures de tablesdonnent la possibilité d'appliquer des requêtes sur plusieurs tables d'une base de données.
select tab.nom_champFROM nom_table As tab[INNER | {{LEFT | RIGHT | FULL } [ OUTER]}] JOIN nom_table2 As tab2ON Condition
La condition de la commande ON permet de comparer les tables jointes par l'intermédiaire de champsdont les valeurs sont identiques et comparables.
INNER JOIN (option par défaut) indique toutes les paires correspondantes des lignes renvoyées etsupprime 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 conditionde jointure, est comprise dans le jeu de résultats et que les colonnes de sortie correspondant à l'autre tablecomportent des valeurs NULL.
LEFT OUTER JOIN indique que toutes les lignes de la table de gauche ne respectant pas la condition dejointure sont incluses dans le jeu de résultats, et que les colonnes de sortie de l'autre table ont des valeursNULL 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 dejointure sont comprises dans le jeu de résultats, et que les colonnes de sortie correspondant à l'autre tableont des valeurs NULL en plus de toutes les lignes renvoyées par la jointure interne.
Edition
Editeur Adresse URL
O'REILLY 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.AdresseFROM Librairie As LINNER JOIN Edition As EON L.Editeur = E.Editeur
' retourneISBN Editeur Adresse1565926978 O'REILLY http://www.oreilly.com/1565929489 O'REILLY http://www.oreilly.com/
2744009296 CAMPUSPRESSFRANCE http://www.campuspress.fr/
2744090034 WROX PRESS http://www.wrox.com/
2840828987 MICROSOFTPRESS http://www.microsoft.com/mspress/
select L.ISBN, L.Editeur, E.AdresseFROM Librairie As LLEFT OUTER JOIN Edition As EON L.Editeur = E.Editeur
L'Altruiste : La technique ADO file:///C:/Inetpub/wwwroot/laltruiste/courspdf/coursado.html
109 sur 109 04/01/2005 09:18
' retourneISBN Editeur Adresse1565926978 O'REILLY http://www.oreilly.com/1565929489 O'REILLY http://www.oreilly.com/2212092857 EYROLLES NULL
2744009296 CAMPUSPRESSFRANCE http://www.campuspress.fr/
2744090034 WROX PRESS http://www.wrox.com/2840725029 ENI NULL
2840828987 MICROSOFTPRESS http://www.microsoft.com/mspress/
Les fonctions d'agrégationaccomplissent un calcul sur plusieurs valeurs et retournent un résultat et sont souvent utilisées avecles commandes GROUP BY et select.
Hormis la fonction COUNT, les fonctions d'agrégation ne tiennent pas compte des valeurs NULL.
Fonction Description
AVG retourne la moyenne des valeurs d'un groupe.
BINARY_CHECKSUM retourne la valeur totale de contrôle binaire calculée à partir d'une ligne d'une tableou d'une liste d'expressions.
CHECKSUM retourne la valeur de checksum calculée dans une ligne d'une table ou dans uneliste 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'expressionspé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'expressionspécifiée.
select COUNT(Livre)FROM Librairie
' retourne7
SELECT SUM(Prix)FROM Librairie
' retourne1 571