L'Altruiste : La technique ADO - Roger NEEL Accueil

109
L'Altruiste : La technique ADO 1 1 sur 109 L'Altruiste : Le guide des langages Web La technique ADO Sommaire 1/Introduction 2/Les objets ADO 2.1/L'objet ADO Command 2.2/L'objet ADO Connection 2.2.1/Les arguments de ConnectionString 2.3/L'objet ADO Error 2.4/L'objet ADO Fields 2.5/L'objet ADO Parameter 2.6/L'objet ADO Property 2.7/L'objet ADO Record 2.8/L'objet ADO Recordset 2.9/L'objet ADO Stream 3/Les collections 3.1/La collection ADO Errors 3.2/La collection ADO Fields 3.3/La collection ADO Parameters 3.4/La collection ADO Properties 4/Les types de curseurs 5/Les constantes ADO 5.1/Les constantes AffectEnum 5.2/Les constantes BookmarkEnum 5.3/Les constantes CommandTypeEnum 5.4/Les constantes CompareEnum 5.5/Les constantes ConnectModeEnum 5.6/Les constante CopyRecordOptionsEnum 5.7/Les constantes CursorLocationEnum 5.8/Les constantes CursorOptionEnum 5.9/Les constantes CursorTypeEnum 5.10/Les constantes DataTypeEnum 5.11/Les constantes CursorTypeEnum 5.12/Les constantes EventReasonEnum 5.13/Les constantes EventStatusEnum 5.14/Les constantes ExecuteOptionEnum 5.15/Les constantes FieldAttributeEnum 5.16/Les constantes FieldStatusEnum 5.17/Les constantes FilterGroupEnum 5.18/La constante GetRowsOptionEnum 5.19/Les constantes IsolationLevelEnum 5.20/Les constantes LineSeparatorsEnum 5.21/Les constantes LockTypeEnum 5.22/Les constantes MarshalOptionsEnum 5.23/Les constantes MoveRecordOptionsEnum 5.24/Les constantes ObjectStateEnum 5.25/Les constantes ParameterDirectionEnum 5.26/Les constantes PersistFormatEnum 5.27/Les constantes PositionEnum 5.28/Les constantes RecordCreateOptionsEnum 5.29/Les constantes RecordOpenOptionsEnum 5.30/Les constantes RecordStatusEnum 5.31/Les constantes RecordTypeEnum 5.32/Les constantes ResyncEnum 5.33/Les constantes SaveOptionsEnum 5.34/Les constantes SchemaEnum 5.35/Les constantes SearchDirectionEnum 5.36/Les constantes SeekEnum 5.37/Les constantes de Stat

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 19

19 sur 109

</html>

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 45

45 sur 109

</html>

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