Executar SQL Server procedimentos armazenados de uma página ASP

Este artigo mostra como executar SQL Server procedimentos armazenados e usar parâmetros de uma página ASP (Páginas do Servidor Ativo).

Versão original do produto: Serviços de Informações da Internet
Número de KB original: 300488

Resumo

Este artigo pressupõe que você esteja familiarizado com o procedimento para usar o ADO (ActiveX Data Objects) em uma página ASP.

Exemplo passo a passo

  1. Execute a consulta a seguir no Analisador de Consultas SQL Server ou SQL Server Management Studio no banco de dados pubs:

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

    O procedimento armazenado (MyProc) usa um parâmetro de entrada (@price) e retorna um parâmetro de saída (@out).

    Observação

    Por padrão, o Northwind banco de dados de exemplo e os bancos de dados de exemplo de pubs não estão instalados no SQL Server 2005. Esses bancos de dados podem ser baixados do Centro de Download da Microsoft. Para obter mais informações sobre como baixar o banco de dados de exemplo northwind e o banco de dados de exemplo de pubs, visite o seguinte site da Microsoft: Baixando Northwind e pubs Sample Databases

  2. O código de exemplo ASP a seguir chama o procedimento armazenado recém-criado. Você pode usar esse código ASP para configurar o parâmetro de entrada e executar a consulta.

    1. Use o CreateParameter método para criar parâmetros no ADO da seguinte maneira:

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. Anexou o parâmetro à coleção Parameters da seguinte maneira:

      Command.Parameters.Append myParameter
      

      Observação

      Os parâmetros na coleção Parâmetros devem corresponder à ordem dos parâmetros no procedimento armazenado.

    3. Execute o comando para passar valores de parâmetro dentro e fora do procedimento armazenado da seguinte maneira:

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

      Observação

      As constantes usadas neste exemplo podem ser encontradas no arquivo Adovbs.inc . Esse arquivo é instalado durante a instalação do Active Server Pages e colocado na \Aspsamp\Samples pasta, que normalmente está localizada em sua \Inetpub pasta. É recomendável que a prática de programação use as constantes em vez dos valores numéricos quando você chama o procedimento armazenado para que seu código seja mais fácil de ler e manter.

       <%@ LANGUAGE = VBScript %>
       <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
      
  3. Modifique o cadeia de conexão do ADO conforme apropriado para seu ambiente.

  4. Salve a página ASP e exiba-a no navegador.

    Observação

    Pode ser difícil determinar como chamar corretamente um procedimento armazenado se você não estiver ciente das informações de parâmetro do procedimento armazenado. Sem as informações corretas, você não pode criar corretamente os parâmetros do ADO. Você pode usar o método Refresh do objeto Parameter para preencher a coleção Parameters automaticamente, com base na definição do procedimento armazenado no servidor. Por exemplo:

    Command.Parameters.Refresh
    

Referências

Para obter mais informações, consulte Criar um aplicativo de dados simples usando ADO.NET.