Artigo: 300488 - Última revisão: quarta-feira, 14 de Dezembro de 2005 - Revisão: 5.2

Como executar o SQL Server armazenadas procedimentos a partir de uma página ASP

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como executar o SQL Server procedimentos armazenados e parâmetros de utilização de uma página ASP (Active Server Pages).

Este artigo pressupõe que está familiarizado com o procedimento para utilizar o ActiveX Data Objects (ADO) numa página ASP.

Mais Informação

Exemplo passo a passo

  1. Execute a seguinte consulta no SQL Server Query Analyzer ou o SQL Server Management Studio na base 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") utiliza um parâmetro de entrada ("@ Preço") e devolve uma saída parâmetro ("@ out").

    Nota Por predefinição, a base de dados de exemplo Adamastor e as bases de dados de exemplo pubs não são instalados no SQL Server 2005. Estas bases de dados podem ser transferidos a partir do Centro de transferências da Microsoft. Para obter mais informações sobre como transferir a base de dados de exemplo Adamastor e a base de dados de exemplo pubs, visite o seguinte Web site da Microsoft:
    http://msdn2.microsoft.com/en-us/library/ms143221.aspx (http://msdn2.microsoft.com/en-us/library/ms143221.aspx)
  2. O seguinte código ASP de exemplo chama o procedimento armazenado recém-criado. Pode utilizar este código ASP para configurar o parâmetro de entrada e executar a consulta.
    1. Utilize o método CreateParameter para criar parâmetros no Microsoft ActiveX Data Objects (ADO) da seguinte forma:
      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      						
    2. Acrescentados o parâmetro a colecção de parâmetros da seguinte forma:
      Command.Parameters.Append myParameter
      							
      Nota : os parâmetros na colecção de parâmetros devem corresponder à ordem dos parâmetros no procedimento armazenado.
    3. Execute o comando para passar valores de parâmetro e de procedimento armazenado da seguinte forma:
      <%
      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: As constantes que são utilizadas neste exemplo podem ser encontradas no ficheiro Adovbs.inc. Este ficheiro é instalado durante a configuração do Active Server Pages e colocado na pasta \Aspsamp\Samples, que normalmente está localizada na pasta \Inetpub. Recomenda-se prática de programação para utilizar as constantes em vez dos valores numéricos quando chamar o procedimento armazenado para que seja mais fácil de ler e manter o código.
    <%@ LANGUAGE = VBScript %>
    <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
    					
  3. Modificar a cadeia de ligação ADO conforme apropriado para o ambiente.
  4. Guarde a página ASP e visualizar no browser.

    NOTA: Pode ser difícil determinar a correctamente chamar um procedimento armazenado não utilizam informações de parâmetros do procedimento armazenado. Sem as informações correctas, não pode criar correctamente os parâmetros do ADO. Pode utilizar o método Actualizar o objecto de parâmetro para povoar a colecção de parâmetros automaticamente, baseado na definição do procedimento armazenado no servidor. Por exemplo:
    Command.Parameters.Refresh
    					

Referências

Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
306574  (http://support.microsoft.com/kb/306574/EN-US/ ) Como: chamada do SQL Server procedimentos armazenados em ASP.NET utilizando o Visual Basic .NET
Para obter informações adicionais sobre o método de actualização, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
165156  (http://support.microsoft.com/kb/165156/EN-US/ ) Como determinar os requisitos de parâmetros para um procedimento armazenado no ASP
Para obter informações adicionais sobre como utilizar um ficheiro de ligação de dados (.udl) para criar uma cadeia de ligação, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
189680  (http://support.microsoft.com/kb/189680/EN-US/ ) Como utilizar ficheiros de ligação de dados com o ADO
Para obter informações adicionais sobre como obter conjuntos de registos do Oracle, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
229919  (http://support.microsoft.com/kb/229919/EN-US/ ) Como obter um conjunto de registos de um Oracle armazenadas procedimento utilizando o ADO no ASP

A informação contida neste artigo aplica-se a:
  • Microsoft Active Server Pages 4.0
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
Palavras-chave: 
kbmt kbfaq kbhowto KB300488 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 300488  (http://support.microsoft.com/kb/300488/en-us/ )