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.
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%>
          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;