Eseguire SQL Server stored procedure da una pagina ASP

Questo articolo illustra come eseguire SQL Server stored procedure e usare i parametri da una pagina ASP (Active Server Pages).

Versione originale del prodotto: Internet Information Services
Numero KB originale: 300488

Riepilogo

Questo articolo presuppone che si abbia familiarità con la procedura per usare ActiveX Data Objects (ADO) in una pagina ASP.

Esempio dettagliato

  1. Eseguire la query seguente in SQL Server Query Analyzer o SQL Server Management Studio nel database Pubs:

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

    La stored procedure (MyProc) accetta un parametro di input (@price) e restituisce un parametro di output (@out).

    Nota

    Per impostazione predefinita, il Northwind database di esempio e i database di esempio pubs non vengono installati in SQL Server 2005. Questi database possono essere scaricati dall'Area download Microsoft. Per altre informazioni su come scaricare il database di esempio Northwind e il database di esempio pubs, visitare il seguente sito Web Microsoft: Download di database di esempio Northwind e pubs

  2. Il codice di esempio ASP seguente chiama la stored procedure appena creata. È possibile usare questo codice ASP per configurare il parametro di input ed eseguire la query.

    1. Usare il CreateParameter metodo per creare parametri in ADO come indicato di seguito:

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. Il parametro è stato aggiunto all'insieme Parameters come indicato di seguito:

      Command.Parameters.Append myParameter
      

      Nota

      I parametri nell'insieme Parameters devono corrispondere all'ordine dei parametri nella stored procedure.

    3. Eseguire il comando per passare i valori dei parametri all'interno e all'esterno della stored procedure come indicato di seguito:

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

      Nota

      Le costanti usate in questo esempio sono disponibili nel file Adovbs.inc . Questo file viene installato durante l'installazione di Active Server Pages e inserito nella \Aspsamp\Samples cartella , che in genere si trova nella \Inetpub cartella. È consigliabile usare le costanti anziché i valori numerici quando si chiama la stored procedure per semplificare la lettura e la gestione del codice.

       <%@ LANGUAGE = VBScript %>
       <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
      
  3. Modificare la stringa di connessione ADO in base all'ambiente in uso.

  4. Salvare la pagina ASP e visualizzarla nel browser.

    Nota

    Può essere difficile determinare come chiamare correttamente una stored procedure se non si è a conoscenza delle informazioni sui parametri della stored procedure. Senza le informazioni corrette, non è possibile creare correttamente i parametri ADO. È possibile utilizzare il metodo Refresh dell'oggetto Parameter per popolare automaticamente l'insieme Parameters in base alla definizione della stored procedure nel server. Ad esempio:

    Command.Parameters.Refresh
    

Riferimenti

Per altre informazioni, vedere Creare un'applicazione dati semplice usando ADO.NET.