Выполнение SQL Server хранимых процедур со страницы ASP

В этой статье показано, как выполнить SQL Server хранимых процедур и использовать параметры со страницы ASP.

Оригинальная версия продукта: службы IIS
Исходный номер базы знаний: 300488

Сводка

В этой статье предполагается, что вы знакомы с процедурой использования объектов данных ActiveX (ADO) на странице ASP.

Пошаговый пример

  1. Выполните следующий запрос в анализаторе запросов SQL Server или SQL Server Management Studio к базе данных Pubs:

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

    Хранимая процедура (MyProc) принимает один входной параметр (@price) и возвращает один выходной параметр (@out).

    Примечание.

    По умолчанию Northwind пример базы данных и примеры баз данных pubs не устанавливаются в SQL Server 2005 г. Эти базы данных можно скачать из Центра загрузки Майкрософт. Дополнительные сведения о том, как скачать пример базы данных Northwind и пример базы данных pubs, посетите следующий веб-сайт Майкрософт: Скачивание примеров баз данных Northwind и pubs

  2. Следующий пример кода ASP вызывает только что созданную хранимую процедуру. Этот код ASP можно использовать для настройки входного параметра и выполнения запроса.

    1. Используйте метод для CreateParameter создания параметров в ADO следующим образом:

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. Добавлен параметр в коллекцию Parameters следующим образом:

      Command.Parameters.Append myParameter
      

      Примечание.

      Параметры в коллекции Parameters должны соответствовать порядку параметров в хранимой процедуре.

    3. Выполните команду , чтобы передать значения параметров в хранимую процедуру и из нее следующим образом:

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

      Примечание.

      Константы, используемые в этом примере, можно найти в файле Adovbs.inc . Этот файл устанавливается во время установки active Server Pages и помещается в папку \Aspsamp\Samples , которая обычно находится в вашей \Inetpub папке. Рекомендуется использовать константы, а не числовые значения при вызове хранимой процедуры, чтобы упростить чтение и обслуживание кода.

       <%@ LANGUAGE = VBScript %>
       <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
      
  3. Измените строка подключения ADO в соответствии с вашей средой.

  4. Сохраните страницу ASP и просмотрите ее в браузере.

    Примечание.

    Если вы не знаете о параметрах хранимой процедуры, определить, как правильно вызвать хранимую процедуру, может быть трудно. Без правильной информации невозможно правильно создать параметры ADO. Метод Refresh объекта Parameter можно использовать для автоматического заполнения коллекции Parameters на основе определения хранимой процедуры на сервере. Например:

    Command.Parameters.Refresh
    

Ссылки

Дополнительные сведения см. в статье Создание простого приложения данных с помощью ADO.NET.