jueves, 22 de febrero de 2007

Creador de Sentencias SQL


Hace un tiempo ya, mi amigo el Ing. Alvaro Mederos (Alvarenga) me comentó sobre un framework que había desarrollado que permitía a un objeto guardarse a sí mismo en la base de datos.
Obviamente me pareció una muy buena idea y en seguida empecé a investigar al respecto. Para mi sorpresa terminó siendo más fácil de lo que imaginé en un principio.

Todo está en la clase PropertyInfo del .net framework. Esta clase nos permite extraer informacion sobre las propiedades de un objeto en tiempo de ejecución!

Como primera prueba pensé en hacer algo que al final me pareció muy útil. Se llama SQL Helper y es una dll que tiene funciones que reciben un objeto cualquiera y retornan un string con la sentencia SQL que se quiera obtener. O sea, hay una para SELECT, otra para DELETE, otra para UPDATE y otra para INSERT. También tiene alguna para crear las tablas en la base, osea retorna el CREATE TABLE...
Obviamente existen una restriccion, y es que la tabla de la base de datos se debe mapear extactamente con una clase del dominio de mi aplicación. Esto significa, se deben llamar igual y deben tener la misma cantidad de campos/atributos/propiedades que a su vez también se deben llamar igual.
Hay funciones como ser las de DELTE y UPDATE que requieren conocer la clave de la tabla, para poder incluir esa propiedad en la clausula WHERE. Para ese caso existen dos alternativas, la primera es pasar un objeto cualquiera y pasar en un string el nombre de la propiedad clave. La otra, es hacer que mis clases implementen una interface (que va con el componente) donde se asume que el atributo clave se llama ID. De esta forma, si uno pasa un ojeto que implementa esta interface SQLHelper va a asumir que existe una propiedad que se llama ID y que esta es la clave, por lo que utilizará este atributo para filtrar en los UPDATE y DELTE.

Siéntase libre de bajarlo, probarlo y deme su opinión que será mas que apreciable.

No hay comentarios.: