Título: [Tutorial] CLR Stored Procedures (Sql Server) Publicado por: [D4N93R] en 23 Julio 2010, 16:00 pm CLR Stored Procedures
El CLR está integrado a SqlServer, y gracias a eso podemos crear objetos de base de datos usando cualquier lenguaje de .Net como C#, VB.Net, F# entre otros. Entre las mejores prácticas de uso en para acciones que no conlleven acceso a datos, como string parsing, comunicación TCP/IP, Webservices, leer o escribir archivos, etc, es recomendable utilizar objetos CLR. Crear el Proyecto Ahora veremos como crear un proyecto sql server desde visual studio: 1.- Hacemos click en New Project o Nuevo Proyecto, y selecionamos DataBase > Sql Server > Visual C# SQL CLR Database Proyect. Le damos un nombre al proyecto y aceptamos. 2.- Se nos abre una ventana para configurar la conexión a la base de datos, si no aparece o la cerraron, pueden sacarla de nuevo en las propiedades del proyecto y luego en la pestaña Database. 3.- Seguimos los pasos del asistente y llenamos los datos de conexión en la ventana que nos apare y hacemos click en OK, con ésto enlazamos el proyecto con la base de datos. 4.- Por último, de hacemos click derecho en el Proyecto > Añadir > Procedimiento Almacenado (Stored Procedure), Le damos un nombre y Aceptar. (http://r.i.elhacker.net/cache?url=http://img714.imageshack.us/img714/1265/projectx.jpg) (http://img714.imageshack.us/i/projectx.jpg/) Con eso tenemos la clase lista para desarrollar los Stored Procedures que queramos. DEMO: Le damos doble click al archivo de clase que creamos y vemos que está de esta manera: Código
En esa clase van a ir todos los Stored procedures que querramos crear, puede ir uno por clase, o una clase con varios métodos, en donde cada método es un SP. Supongamos que necesito hacer un SP que me liste los archivos de determinado directorio del servidor y los pueda filtrar. La manera correcta y más fácil de hacer esto es con un CLR SP, ya que podemos usar las clases que nos da .Net. El Stored Procedure quedaría de esta manera: Código
Cuando ya terminemos el SP, Simplemente click derecho sobre el proyecto y click en Deploy y se va directo a Sql Server y se crea el SP donde se podrá usar sin problema alguno. Otro paso importante es habilitar el CLR dentro de Sql Server, lo podemos hacer de la siguiente manera: Código
Aunque hay casos en donde el assembly requiere privilegios elevados, cuando éste sea el caso necesitan marcar el assembly como UNSAFE, es decir sin restricciones. Click derecho en el proyecto > Propiedades > En la pestaña Database seleccionamos el Permission Level como Unsafe. Y luego pueden ejecutar el siguiente query, el cual debería habilitar la ejecución de Ensamblados UNSAFE. Código
Resultado (http://r.i.elhacker.net/cache?url=http://img831.imageshack.us/img831/5958/resultj.jpg) (http://img831.imageshack.us/i/resultj.jpg/) Espero les sea de ayuda, Un saludo! |