Posteado por: martinmelchior | mayo 15, 2007

SQL-DMO


Por estos días en mis ratos libres estoy terminando un nuevo release de mi modesto generador de código. Si bien su primera versión llegaba a ser una “alfa”, creo que en esta ocasión aún no puedo cosiderarlo como una versión final así que con una “beta” me conformo. Al margen de alfas y betas, lo interesante es que estoy satisfecho porque pude probar la alfa en uno de mis proyectos “de la vida real”, y sinceramente cumplió con uno de sus principales objetivos, “automatizar tareas repetitivas, monótonas y que llevan su tiempo si las hacemos a manopla” y que además el código generado funcione !!!

Una de las ultimas mejoras implicaba poder correr los store procedures generados en la IDE, desde la misma IDE contra en el correspondiente servidor/base de datos al que estamos conectados; así llegué a SQLDMO (SQL Distributed Management Objects).

Para poder definir a SQLDMO en pocas palabras les diría que esta dll nos permitiría (si tenemos muchas ganas !!!) crear nuestro propio Enterprise Manager. Si, incluso poder crear bases de datos, store procedures, tabla, vistas, correr bkps, restaurar bkps, etc.

Obviamente existen una serie de requisitos a la hora de trabajar con SQLDMO, pero si tienes instalado las herramientas cliente de SQL Server, seguramente ya podrías trabajar sin problemas. De todos modos, si vas a trabajar contra un SQL 2000 desde .net, quizá sea necesario instalar el SP2 de SQL Server.

Como te imaginarás si vamos a trabajar desde algún proyecto .net o vb6 será necesario referenciar a “Microsoft SQLDMO Object Library” para poder utilizar SQLDMO. Una vez hecho esto, ya estamos en condiciones de empezar, aunque la idea es siempre conectarnos a un servidor y a partir de ahí ir bajando en la jerarquía dependiendo de lo que querramos hacer. Es decir, si queremos crear un store procedure entonces vamos a necesitar conectarnos a un servidor, pararnos en una base de datos y luego crear el store procedure. Esta es la forma de realizar las cosas cuando utilizamos este componente.

Veamos un ejemplo simple.

void ProcesarComandosSQL(String strComandoSQL)

{

int i = 0;

bool usarSeguridadWindows = false;

string strComando = “”;

//– Creo objeto SQLDMO Servidor

SQLDMO.SQLServer oServidor = new SQLDMO.SQLServer();

//– Determino si uso seguridad INTEGRADA WINDOWS o SQL SERVER

if (string.IsNullOrEmpty(txtUsuario.Text) && string.IsNullOrEmpty(txtClave.Text))

usarSeguridadWindows = true;

//– Me conecto al Servidor

if (usarSeguridadWindows)

{

oServidor.LoginSecure = true;

oServidor.Connect(Proyecto.Servidor, “”, “”);

}

else

{

oServidor.LoginSecure = false;

oServidor.Connect(Proyecto.Servidor, txtUsuario.Text, txtClave.Text);

}

//– USE de la Base de datos a la que estoy conectado

strComando = “USE ” + BaseDeDatos.Text + Environment.NewLine + ” GO “+Environment.NewLine;

strComando += strComandoSQL;

oServidor.ExecuteImmediate(strComando, SQLDMO.SQLDMO_EXEC_TYPE.SQLDMOExec_Default,
strComando.Length);

}

Anuncios

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

Categorías

A %d blogueros les gusta esto: