Inicio > SMO, SQL Serveer 2008, SQL Server, SQL Server 2005 > [SQL] Hablando de SMO (algo que no sabia :S)

[SQL] Hablando de SMO (algo que no sabia :S)

Bien, iniciemos por saber que es SMO y para que nos sirve.

¿Que es SMO?

Es un Modelo de Objetos de Microsoft .NET que viene incluido en las herramientas cliente de SQL Server 2005 en un ensamblado llamado Microsoft.SqlServer.Smo.dll.

SMO nos permite manipular mediante programación las versiones 2005, 2000 y 7.0 de SQL Server. Toda la funcionalidad con la que contamos en SQL Management Studio la encontramos disponible en SMO. En realidad nos ofrece varias funcionalidades más que Management Studio, y el 99% de todas las funciones y la funcionalidad de SQL Server puede manipularse desde SMO. (quiza mucho más de las que ofrece Management Studio).

Vamos a ver si esto es cierto  o mínimo como usar SMO desde Visual Studio. Para comenzar a trabajar con SMO, lo primero que debemos hacer es agregar una referencia a un par de ensamblados que son MIcrosoft.SqlServer.Smo y Microsoft.SqlServer.ConnectionInfo. Bien trabajaremos con una aplicacion de Windows Form y agregamos los siguientes controles:

Control Nombre Texto
TextBox txtNombre  
TextBox txtUser  
TextBox txtPassword  
Label lblServidor Servidor
Label lblUser Usuario
Label lblPassword Contraseña
CheckBox CheckAutenticacion  
Boton btnConectar Conectar
GroupBox groupAutenticacin  

Bien organizamos estos controles para que el diseño de nuestro Formulario quede de la siguiente manera

image

Lo que haremos en este ejemplo es comprender los objetos ServerConnection y Server de SMO para ello vamos a conectarnos a una instancia de SQL Server empleando el objeto ServerConnection y luego el objeto Server para recuperar la edición,  la versión y el nombre de la instancia.También la aplicación preguntará al usuario si desea usar autenticación integrada. El código es el siguiente:

 private void btnConectar_Click(object sender, EventArgs e)
        {
            //hacemos uso del objeto de conexion
            ServerConnection conexion = new ServerConnection();
            //asignamos el nombre de la instancia
            conexion.ServerInstance = txtServer.Text.ToString();

            //determinamos si existe seguridad integrada
            if (checkAutenticacion.Checked == false)
            {
                //uso de la seguridad sql
                conexion.LoginSecure = false;
                conexion.Login = txtUser.Text.ToString();
                conexion.Password = txtUser.Text.ToString();

            }


            //realizamos la conexión y regresamos los resultados
            try
            {
                Server miServer = new Server(conexion);

                MessageBox.Show("No esta conectado a: " + miServer.Name + System.Environment.NewLine +
                     "Información de edición:  " + miServer.Information.Edition +
                     System.Environment.NewLine +
"Información de versión: " + miServer.Information.Version, "Demo de SMO");
            }
            catch (SmoException exSMO)
            {
                MessageBox.Show(exSMO.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                
            }
        }

        private void checkAutenticacion_CheckedChanged(object sender, EventArgs e)
        {
            if (checkAutenticacion.Checked == true)
            {
                foreach (Control c in groupAutenticacin.Controls)
                {
                    c.Enabled = false;
                }
            }
            else
            {
                foreach (Control c in groupAutenticacin.Controls)
                {
                    c.Enabled = true;
                }
            }
        }

Y tenemos como resultado:

imageComo se pueden dar cuenta estoy usando la versión Express de SQL y que se encuentra en mi  maquina, Con esto iniciamos a platicar de SMO, en estos días estaré platicando un poco más de esto y principalmente para que nos sirve, por el momento les dejo este ejemplo que es como un Hola Mundo.

 

Etiquetas de Technorati: ,,
  1. tetsunami
    julio 23, 2009 a las 10:56 pm

    pos interesante pero seria bueno que ejecutes algun script usando smo si puedes un sp

    saludos

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: