Exécuter SQL Server procédures stockées à partir d’une page ASP

Cet article explique comment exécuter SQL Server procédures stockées et utiliser des paramètres à partir d’une page ASP (Active Server Pages).

Version du produit d’origine : Internet Information Services
Numéro de la base de connaissances d’origine : 300488

Résumé

Cet article part du principe que vous êtes familiarisé avec la procédure d’utilisation d’ActiveX Data Objects (ADO) dans une page ASP.

Exemple pas à pas

  1. Exécutez la requête suivante dans SQL Server’analyseur de requête ou SQL Server Management Studio sur la base de données Pubs :

    CREATE proc MyProc
    (
        @price smallint,
        @out smallint OUTPUT
    )
    AS
    Select @out = count(*) from titles where price < @price
    GO
    

    La procédure stockée (MyProc) prend un paramètre d’entrée (@price) et retourne un paramètre de sortie (@out).

    Remarque

    Par défaut, l’exemple Northwind de base de données et les exemples de bases de données pubs ne sont pas installés dans SQL Server 2005. Ces bases de données peuvent être téléchargées à partir du Centre de téléchargement Microsoft. Pour plus d’informations sur le téléchargement de l’exemple de base de données Northwind et de l’exemple de base de données pubs, visitez le site web Microsoft suivant : Téléchargement des exemples de bases de données Northwind et pubs

  2. L’exemple de code ASP suivant appelle la procédure stockée nouvellement créée. Vous pouvez utiliser ce code ASP pour configurer le paramètre d’entrée et exécuter la requête.

    1. Utilisez la CreateParameter méthode pour créer des paramètres dans ADO comme suit :

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. Ajout du paramètre à la collection Parameters comme suit :

      Command.Parameters.Append myParameter
      

      Remarque

      Les paramètres de la collection Parameters doivent correspondre à l’ordre des paramètres dans la procédure stockée.

    3. Exécutez la commande pour passer des valeurs de paramètre dans et hors de la procédure stockée comme suit :

      <%
      Dim cmd
      Dim ln
      Dim retCount
      
      Set cmd = Server.CreateObject("ADODB.Command")
      
      With cmd
       .ActiveConnection = "Paste your connection string here"
       .Commandtext = "MyProc"
       .CommandType = adCmdStoredProc
       .Parameters.Append .CreateParameter("@price", adSmallInt, adParamInput, 10).Parameters("@price") = 22
       .Parameters.Append .CreateParameter("@retValue", adSmallInt, adParamOutput, 10).Execute ln, , adExecuteNoRecords
       retCount = .Parameters("@retValue")
      End with
      
      Response.Write retcount
      
      Set cmd = Nothing
      %>
      

      Remarque

      Les constantes utilisées dans cet exemple se trouvent dans le fichier Adovbs.inc . Ce fichier est installé pendant l’installation des pages Active Server et placé dans le \Aspsamp\Samples dossier, qui se trouve normalement dans votre \Inetpub dossier. Il est recommandé d’utiliser les constantes plutôt que les valeurs numériques lorsque vous appelez votre procédure stockée afin que votre code soit plus facile à lire et à gérer.

       <%@ LANGUAGE = VBScript %>
       <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
      
  3. Modifiez le chaîne de connexion ADO en fonction de votre environnement.

  4. Enregistrez la page ASP et affichez-la dans le navigateur.

    Remarque

    Il peut être difficile de déterminer comment appeler correctement une procédure stockée si vous n’avez pas connaissance des informations de paramètre de la procédure stockée. Sans les informations correctes, vous ne pouvez pas créer correctement les paramètres ADO. Vous pouvez utiliser la méthode Refresh de l’objet Parameter pour remplir automatiquement la collection Parameters, en fonction de la définition de la procédure stockée sur le serveur. Par exemple :

    Command.Parameters.Refresh
    

References

Pour plus d’informations, consultez Créer une application de données simple à l’aide de ADO.NET.