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