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.
Les CollectionsCREATE 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
| Collection |
|---|
| Description |
| Properties |
| contient toutes les objets Property pour une instance spécifique d'un objet. |
| 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. |
| Méthode |
|---|
| Description |
| Objet_Parameter.AppendChunk Données |
| ajoute des données à un paramètre. |
<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; |