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.
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")

      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;