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.

Seguir Leyendo

miércoles, 21 de febrero de 2007

Primer post!

Bueno, acá estoy nuevamente en español...
Para quienes visitan este sitio por primera vez pueden leer mi blog en inglés donde posteaba en inglés y español para hacerse una idea de que voy a estar posteando.
Básicamente, de las cosas que a mi me interesan, programación, bases de datos, internet, bah! tecnología en general.

Un poco sobre mi? bueno, soy ingeniero en sistemas desde el 2004 y hace poco entré a trabajar en el equipo de desarrollo de DeKlarit. Empecé haciendo soporte, conociendo la herramienta y haciendo algunas customizaciones de los templates de los distintos addins de DeKlarit. (si! customizaciones, trato de hablar bien pero hay palabras que tengo muy adquiridas, al que no le gusten ponga cara de "olor feo" y ya está). Ahora me encuentro desarrollando un Addin que permitirá generar reportes según los distintos business components y data providers de DeKlarit.

En breve espero empezar a postear, al principio posiblemente sean traducciones de mis posts en inglés, espero sean interesantes... sé que "entretenidos" no van a ser.

Seguir Leyendo