Como depurar procedimentos armazenados no Visual Studio .NET

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: 316549
Este artigo faz referência à seguintes espaços de nomes Microsoft .NET Framework Class Library:
  • System.data
  • System.data.SqlClient

NESTA TAREFA

Sumário
Este artigo passo a passo explica duas formas que pode depurar procedimentos armazenados do SQL Server e as definições de configuração necessárias e passos para cada abordagem.

Um programador de Visual Studio .NET pode utilizar o Explorador do servidor para depurar procedimentos armazenados do SQL Server independentemente de qualquer projecto de Visual Studio ou o programador pode passo o código do procedimento armazenado diretamente em código gerido num projecto do Visual Basic, Visual C# ou Visual J#.

back to the top

Opção 1: Depurar um procedimento armazenado em modo autónomo

  1. Abra o Explorador do Server.

    Nota : não é necessário adicionar uma ligação de dados para trabalhar com um servidor de SQL Server porque os servidores do SQL Server são listadas sob o nó de servidores também. Utilizará o nó de servidores nos passos que se seguem; no entanto, pode utilizar uma ligação de dados a servidor SQL da mesma forma.
  2. No nó servidores no Explorador do servidor, expanda o nome de computador Do SQL Server , expanda o nó de SQL Server , expanda a instância Do SQL Server , expanda o nó da base de dados Adamastor e, em seguida, expanda o nó procedimentos armazenados .
  3. Clique com o botão direito do rato o procedimento CustOrderHist armazenados e clique em Passo no procedimento armazenado .
  4. A caixa de diálogo Executar procedimento armazenado é aberta, que lista os parâmetros do procedimento armazenado. Tipo ALFKI como o valor para @ CustomerID parâmetro de entrada e, em seguida, clique em OK .
  5. É no ambiente de estrutura Visual Studio, aberta uma janela que apresenta o texto do procedimento armazenado. A primeira linha executável do procedimento armazenado é realçada. Prima F11 para percorrer o procedimento armazenado para conclusão.
  6. Na janela de saída, é apresentada a seguinte mensagem, que indica a execução com êxito:
    O programa ' SQL depurador: T-SQL ' terminou com o código 0 (0 x 0).
back to the top

Opção 2: Passo para um procedimento armazenado do código gerido

  1. Criar uma aplicação do Windows do Visual Basic novo projecto.
  2. Arraste um controlo de botão da caixa de ferramentas ao Form1. Na parte superior da janela de código do Form1, adicione a seguinte linha de código:
    Imports System.Data.SqlClient					
  3. Copie o código seguinte para o procedimento de evento Button1_Click :

    Nota : modificar a cadeia de ligação conforme necessário para o seu ambiente.
            Dim cn As SqlConnection        Dim strCn As String        Dim cmd As SqlCommand        Dim prm As SqlParameter        strCn = "Data Source=(local);Initial Catalog=Northwind;" & _            "Integrated Security=SSPI"        cn = New SqlConnection(strCn)        cmd = New SqlCommand("CustOrderHist", cn)        cmd.CommandType = CommandType.StoredProcedure        prm = New SqlParameter("@CustomerID", SqlDbType.Char, 5)        prm.Direction = ParameterDirection.Input        cmd.Parameters.Add(prm)        cmd.Parameters("@CustomerID").Value = "ALFKI"        cn.Open()        Dim dr As SqlDataReader = cmd.ExecuteReader        While dr.Read            Console.WriteLine("Product ordered: {0}", dr.GetSqlString(0))        End While        dr.Close()        cn.Close()					
  4. No Solution Explorer, clique com o botão direito do rato no projecto (não a solução) e abra as páginas de Propriedades . Clique em Propriedades de configuração na árvore da e, em seguida, clique para seleccionar a caixa de verificação Depuração do SQL Server na página a depuração para activar a depuração do procedimento armazenado.
  5. Definir um ponto de interrupção a seguinte linha de código:
           Dim dr As SqlDataReader = cmd.ExecuteReader					
  6. No Explorador do servidor, localize e abra o procedimento armazenado CustOrderHist conforme descrito na opção 1. Clique com o botão direito do rato o procedimento armazenado e clique em Editar procedimento armazenado .
  7. Defina um ponto de interrupção no procedimento armazenado de instrução SELECT, que é a única linha de código executável.
  8. Prima F5 para executar o projecto do Visual Basic.
  9. Quando o Form1 é apresentada, clique no botão de comando . O código será executado para o ponto de interrupção que defina antes o procedimento armazenado é chamado.
  10. Prima F11. O código de execução de passos do método ExecuteReader para a janela procedimento armazenado.
  11. Prima F11 novamente. Executa a linha de código no procedimento armazenado, a instrução SELECT. Controlo voltará ao projecto do Visual Basic e o projecto é executado para conclusão.
  12. Para continuar a avançar o código do Visual Basic depois passo fora do procedimento armazenado, tem de definir um segundo ponto de interrupção no código do Visual Basic após a chamada de procedimento armazenado. Por exemplo, o código de exemplo apresentado nesta secção, pode definir o segundo ponto de interrupção na linha seguinte:
            While dr.Read					
back to the top

Resolução de problemas

  • Para o passo do código do Visual Studio para um procedimento armazenado, tem de Activar depuração de SQL nas Propriedades do projecto na página a depuração .
  • Para examinar o código do procedimento armazenado, tem de definir um ponto de interrupção no procedimento armazenado propriamente dito. Caso contrário, a depuração passos através do procedimento armazenado e a janela para o procedimento armazenado não é aberto.
  • Para continuar a percorrer o código do Visual Studio depois de depuração passos fora de um procedimento armazenado, tem de definir um ponto de interrupção no código de projecto num ponto após a execução do procedimento armazenado. Caso contrário, o código é executado para conclusão após depuração passos fora do procedimento armazenado.
  • Para problemas de instalação e configuração, consulte a secção intitulada "Definições para SQL depuração" no Visual Studio .NET de documentação.
back to the top

Limitações de depuração do procedimento armazenado

Segue-se uma lista de limitações que poderá encontrar quando depurar procedimentos armazenados e que não a encontrar quando depurar código do Visual Studio:
  • Não é possível "terminar" execução.
  • Não é possível "Editar e continue."
  • Não é possível alterar a ordem de execução de instrução.
  • Embora possa alterar o valor de variáveis, as alterações não poderão efeito porque os valores de variáveis são colocados em cache.
  • Saída da instrução PRINT SQL não é apresentada.
back to the top
Referências
Para obter mais informações sobre a depuração no Visual Basic 6.0, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
170496Sugestões para depurar procedimentos armazenados a partir do Visual Basic
Para mais informações, visite o seguinte Web site da Microsoft (ou consulte o tópico "Depuração de SQL" a ajuda do Visual Studio .NET documentação): back to the top

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 316549 - Última Revisão: 05/12/2007 08:14:35 - Revisão: 5.6

Microsoft ADO.NET (included with the .NET Framework), Microsoft ADO.NET 1.1, Microsoft Visual J# .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual Studio .NET 2003 Enterprise Architect, Microsoft Visual Studio .NET 2003 Enterprise Developer

  • kbmt kbhowtomaster kbsqlclient kbsystemdata KB316549 KbMtpt
Comentários