Ausführen SQL Server gespeicherter Prozeduren von einer 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 zum Verwenden von ActiveX Data Objects (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 ( ) und @price 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 Northwind- und Pubs-Beispieldatenbanken

  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. Der Parameter wurde wie folgt an die Parameters -Auflistung angefügt:

      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 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 beim Setup von Active Server Pages installiert und in dem Ordner gespeichert, der \Aspsamp\Samples sich normalerweise in Ihrem Ordner \Inetpub 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 automatisch basierend auf der Definition der gespeicherten Prozedur auf dem Server aufzufüllen. Zum Beispiel:

    Command.Parameters.Refresh
    

References

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