La technique ADO

Transcription

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