CÓMO: Utilizar el depurador mejorado en Visual Studio .NET (depuración SQL)

Resumen

En este artículo paso a paso se muestra cómo configurar y utilizar la depuración SQL en un pequeño programa basado en Windows.


Requisitos

Los elementos siguientes describen el hardware, el software, la infraestructura de red, las capacidades, el conocimiento y los Service Packs que se necesitan:
  • Microsoft Windows 2000 Professional (o Server), o Windows XP Professional (o Server) con Microsoft .NET Framework instalado.
  • Microsoft SQL Server 7.0, o posterior, con la base de datos Neptuno.
  • Visual Studio .NET Professional Edition, Enterprise Architect Edition o Enterprise Developer Edition
Se aplica a:
  • Visual Studio .NET
  • Microsoft Visual Basic .NET
  • C ++
  • SQL Server

Utilizar el depurador mejorado en Visual Studio .NET (depuración SQL)

En los pasos siguientes se explica cómo crear un proyecto de aplicación de Windows en Visual Studio .NET, configurar el equipo para la depuración SQL, crear un controlador de evento Button Click que ejecuta un procedimiento almacenado en la base de datos Neptuno y, por último, establecer un punto de interrupción en el procedimiento almacenado para propósitos de depuración:
  1. En el menú Inicio, seleccione Programas, Microsoft Visual Studio .NET y, a continuación, haga clic en Microsoft Visual Studio .NET.
  2. Haga clic en el botón Nuevo proyecto. En Tipos de proyecto, haga clic en Proyectos de Visual Basic. En Plantillas, haga clic en Aplicación para Windows. En el cuadro de texto Nombre, escriba HowToSQLDebug y, después, haga clic en Aceptar.
  3. Presione CTRL+ALT+S para abrir el Explorador del servidor. Haga clic con el botón secundario del mouse (ratón) en Conexiones de datos y, a continuación, haga clic en Agregar conexión.
  4. En Propiedades de vínculo de datos, escriba localhost en el cuadro de lista desplegable 1. Seleccione o escriba un nombre de servidor.
  5. En 2. Introduzca información para iniciar sesión en el servidor, en el cuadro de texto Nombre de usuario, escriba sa y, después, haga clic para activar Contraseña en blanco (o escriba las credenciales adecuadas para conectarse a la instalación de SQL Server).
  6. En 3. Seleccione la base de datos del servidor, haga clic en Neptuno y, después, en Aceptar.
  7. Debe configurar el servicio MSSQLServer de forma que se ejecute bajo una cuenta con derechos administrativos. Para ello, siga estos pasos:
    1. En el menú Inicio, haga clic en Panel de control, haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Servicios.
    2. En Servicios, busque el servicio MSSQLSERVER. Haga clic con el botón secundario del mouse (ratón) en el servicio MSSQLSERVER y, a continuación, haga clic en Propiedades.
    3. Haga clic en la ficha Iniciar sesión.
    4. Escriba las credenciales adecuadas para una cuenta con derechos de administrador en el equipo local y, después, haga clic en Aceptar. (Si aparece un cuadro de diálogo donde se le notifica que se ha concedido el derecho Iniciar sesión como servicio a la cuenta agregada, haga clic en Aceptar.)
    5. Haga clic con el botón secundario del mouse (ratón) en el servicio MSSQLSERVER y, a continuación, haga clic en Reanudar. El servicio se reinicia e inicia sesión mediante la cuenta de servicio que especificó en el paso d.
  8. Establezca los permisos para DCOM. Los pasos para efectuar esta tarea varían dependiendo de la plataforma, por lo que se recomienda que visite el siguiente sitio Web de Microsoft y siga los pasos correspondientes al sistema que utilice:
    Por ejemplo, los pasos que debe seguir para un equipo que ejecute Windows XP son los siguientes:
    1. En el menú Inicio, haga clic en Panel de control, haga doble clic en Herramientas administrativas y, a continuación, abra el complemento Servicios de componentes.
    2. Expanda Servicios de componentes, Equipos y, después, Mi equipo.
    3. Haga clic con el botón secundario del mouse(ratón) en Mi equipo y, a continuación, haga clic en Propiedades.
    4. Haga clic en la ficha Seguridad predeterminada.
    5. En Permisos de acceso predeterminados, haga clic en Modificar predeterminados.
    6. Agregue su cuenta a la lista de usuarios.
  9. Active la depuración SQL en el nivel de proyecto. Para ello, siga estos pasos:
    1. En Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en el proyecto HowToSqlDebug y haga clic en Propiedades.
    2. En el panel de la izquierda, expanda Propiedades de configuración y, a continuación, haga clic en Depuración.
    3. En la esquina inferior de la derecha, haga clic para activar la casilla de verificación correspondiente a la opción Depuración SQL Server y haga clic en Aceptar.
  10. Presione CTRL+ALT+X para abrir la caja de herramientas. En el grupo Windows Forms, arrastre un Botón a Form1.vb [Diseño].
  11. Haga doble clic en Button1 para crear un controlador de evento Click. En la parte superior, agregue las siguientes declaraciones de espacio de nombres para así poder tener acceso a las clases relacionadas mediante la notación abreviada:
     
    Imports System.Data
    Imports System.Data.SqlClient
  12. En el controlador de evento, escriba el siguiente código de ejemplo, que llama al procedimiento almacenado que va a depurar:
     
    Dim cn As New SqlConnection("server=localhost;database=northwind;trusted_connection=true")


    Dim cmd As New SqlCommand("CustOrdersDetail", cn)

    cmd.CommandType = CommandType.StoredProcedure
    cmd.Parameters.Add(New SqlParameter("@OrderID", SqlDbType.Int)).Value = 10256

    cn.Open()
    cmd.ExecuteReader(CommandBehavior.CloseConnection)
    MessageBox.Show("SPROC Successfully Executed")
  13. Establezca un punto de interrupción en el procedimiento almacenado. Para ello, siga estos pasos:
    1. Presione CTRL+ALT+S para abrir el Explorador del servidor.
    2. Expanda Conexiones de datos, Su InstanciaSQLServer para Neptuno y, por último, Procedimientos almacenados.
    3. Haga doble clic en CustOrdersDetail. Coloque el punto de intersección en cualquier parte de la cláusula WHERE y, después, presione F9. Aparecerá a la izquierda un punto de color rojo oscuro que indica que se ha establecido un punto de interrupción.

Código completo (Form1.vb)

 
Imports System.Data
Imports System.Data.SqlClient

Public Class Form1
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'Windows Form Designer requires this call.
InitializeComponent()

'Add any initialization after the InitializeComponent() call.

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by Windows Form Designer.
Private components As System.ComponentModel.IContainer

'NOTE: Windows Form Designer requires the following procedure.
'You can modified the procedure by using the Windows Form Designer.
'Do not modify the procedure by using the code editor.
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(128, 40)
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 0
Me.Button1.Text = "Button1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1})
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cn As New SqlConnection("server=localhost;database=northwind;trusted_connection=true")
Dim cmd As New SqlCommand("CustOrdersDetail", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New SqlParameter("@OrderID", SqlDbType.Int)).Value = 10256

cn.Open()
cmd.ExecuteReader(CommandBehavior.CloseConnection)
MessageBox.Show("SPROC Successfully Executed")
End Sub
End Class

Comprobar que funciona

  1. Presione F5 para ejecutar el programa en modo depuración.
  2. Cuando se cargue el formulario, haga clic en Button1.
  3. El programa se detiene en la instrucción SELECT (observe que aunque estableció el punto de interrupción en la cláusula WHERE, SQL trata todo el código del bloque SQL como una sola instrucción).
  4. Presione F11 para recorrer el procedimiento almacenado paso a paso.
  5. Se ejecuta la instrucción SQL y aparece el cuadro de mensaje.

Solucionar problemas

Debe utilizar los pasos adicionales de depuración de procedimientos almacenados que se encuentran en una instalación de Desktop Engine. Para ver estos pasos, visite el siguiente sitio Web de Microsoft:

Referencias

Para obtener más información acerca de la depuración SQL, visite el siguiente sitio Web de Microsoft:
Propiedades

Id. de artículo: 318144 - Última revisión: 2 jul. 2002 - Revisión: 1

Comentarios