Ausführen SQL Server gespeicherter Prozeduren über eine ASP-Seite

In diesem Artikel wird gezeigt, wie Sie SQL Server gespeicherten Prozeduren ausführen und Parameter von einer ASP-Seite (Active Server Pages) verwenden.

Ursprüngliche Produktversion: Internetinformationsdienste
Ursprüngliche KB-Nummer: 300488

Zusammenfassung

In diesem Artikel wird davon ausgegangen, dass Sie mit dem Verfahren zur Verwendung von ActiveX-Datenobjekten (ADO) auf einer ASP-Seite vertraut sind.

Schritt-für-Schritt-Beispiel

  1. Führen Sie die folgende Abfrage in SQL Server Query Analyzer oder SQL Server Management Studio für die Pubs-Datenbank aus:

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

    Die gespeicherte Prozedur (MyProc) akzeptiert einen Eingabeparameter (@price) und gibt einen Ausgabeparameter (@out) zurück.

    Hinweis

    Standardmäßig werden die Northwind Beispieldatenbank und die Pubs-Beispieldatenbanken nicht in SQL Server 2005 installiert. Diese Datenbanken können aus dem Microsoft Download Center heruntergeladen werden. Weitere Informationen zum Herunterladen der Northwind-Beispieldatenbank und der Pubs-Beispieldatenbank finden Sie auf der folgenden Microsoft-Website: Herunterladen von Beispieldatenbanken für Northwind und Pubs

  2. Der folgende ASP-Beispielcode ruft die neu erstellte gespeicherte Prozedur auf. Sie können diesen ASP-Code verwenden, um den Eingabeparameter einzurichten und die Abfrage auszuführen.

    1. Verwenden Sie die CreateParameter -Methode, um Parameter in ADO wie folgt zu erstellen:

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. Fügen Sie den Parameter wie folgt an die Parameters-Auflistung an:

      Command.Parameters.Append myParameter
      

      Hinweis

      Die Parameter in der Parameters-Auflistung müssen mit der Reihenfolge der Parameter in der gespeicherten Prozedur übereinstimmen.

    3. Führen Sie den Befehl aus, um Parameterwerte in und aus der gespeicherten Prozedur wie folgt zu übergeben:

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

      Hinweis

      Die in diesem Beispiel verwendeten Konstanten finden Sie in der Datei Adovbs.inc . Diese Datei wird während des Setups von Active Server Pages installiert und in dem Ordner abgelegt, der \Aspsamp\Samples sich normalerweise in Ihrem \Inetpub Ordner befindet. Es wird empfohlen, beim Aufrufen der gespeicherten Prozedur die Konstanten anstelle der numerischen Werte zu verwenden, damit Ihr Code einfacher zu lesen und zu verwalten ist.

       <%@ LANGUAGE = VBScript %>
       <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
      
  3. Ändern Sie die ADO-Verbindungszeichenfolge entsprechend Ihrer Umgebung.

  4. Speichern Sie die ASP-Seite, und zeigen Sie sie im Browser an.

    Hinweis

    Es kann schwierig sein, zu bestimmen, wie eine gespeicherte Prozedur ordnungsgemäß aufgerufen wird, wenn Sie die Parameterinformationen der gespeicherten Prozedur nicht kennen. Ohne die richtigen Informationen können Sie die ADO-Parameter nicht ordnungsgemäß erstellen. Sie können die Refresh-Methode des Parameter-Objekts verwenden, um die Parameters-Auflistung basierend auf der Definition der gespeicherten Prozedur auf dem Server automatisch aufzufüllen. Zum Beispiel:

    Command.Parameters.Refresh
    

References

Weitere Informationen finden Sie unter Erstellen einer einfachen Datenanwendung mithilfe von ADO.NET.