Páginas

sábado, 31 de marzo de 2012

MapBD, nueva version 0.1.2 : el hibernate para gambas !!


Nueva Versión MapBD 
versión 0.1.2
Mejoras en Consultas MultiTablas

He seguido trabajando el este programa, ya que me encontraba con la dificultad de poder trabajar con sentencias sql, que manejaran varias tablas, y mostrar sus resultados en un gridviews...

Pues bien, ya le he incluido esa mejora.

Ahora (además de las clases que creaba la antigua versión), crea dos nuevas clases, para manejar los "registros de datos" que salen de resultado en las sentencias con multiples tablas.
Se llaman,respectivametne:
 a)     BD{nombre_base_de_datos}Registro
                 Que es la que contiene todas las propiedades (coinciden con todos los campos que tienen todas la tablas de la base de dato, siendo elnombre de la propiedad igual al nombre de la tabla+guion bajo ("_") +nombre del campo

 b)  BD{nombre_base_de_datos}
               Esta clase va a tener los métodos con la que trabajaremos con la clase anterior.

En esta versión tiene los siguientes métodos:
           PUBLIC SUB Abrir()
                abre la conexión a la base de datos 
           PUBLIC SUB Cerrar() 
                 cierra la conexión de la base de datos
           PUBLIC FUNCTION sql(consulta AS String) AS result
                 ejecuta una consulta SQL y devuelve un "result"
           PUBLIC SUB resultObject(resultado AS Result) AS object[]
                  convierte un "result" en Objetos
           PUBLIC SUB EscribeObjetos(t AS Object[])
                  escribe los objetos en la consola
           PUBLIC FUNCTION GridObjetos(t AS object[], grid AS gridview) AS 
gridview
                   formatea un gridview dado (grid), con los datos de los objetos obtenido en la sentencia anterior.


Os lo explico con el ejemplo, que creo que se verá mucho más claro, su utilización:
"En el programa de Consulta Medica, queremos que se nos muestre un gridviews, con todos los enfermos y la enfermedad que padecen. Nota: Hay alguno que padecen más de una enfermedad."

La sentencia SQL seria:
Select nombre,Apellido,TablaExpediente.enfermedades
FROM TablaEnfermo,TablaExpediente
WHERE tablaenfermo.idenfermo=tablaexpediente.idenfermo

 ¿Como lo haríamos con los nuevos métodos?
DIM paso2 AS NEW BDControlConsulta 'nueva Clase que maneja Resultados de sentencias SQL que usan Varias Tablas
DIM obj AS Object[] 'creamos un array de objetos, que van a contener los resultados
Dim resultado as result 'contiene el resultado de la consulta sql

'abrimos la conexion a la base de datos 
paso2.Abrir


'obtenemos el resultado de la sentencia SQL
resultado=paso2.sql("SELECT nombre,Apellido,TablaExpediente.enfermedades FROM TablaEnfermo,TablaExpediente WHERE tablaenfermo.idenfermo=tablaexpediente.idenfermo")



'extraemos los objetos
obj = paso2.resultObject(resultado)

'rellemos el gridviews, con los objetos (incluido el titulo de cada columna)
GridView1 = paso2.GridObjetos(obj, GridView1)

 Y el resultado en pantalla es....

¿Resulta muy cómodo verdad? Y solo en 7 lineas de código !!!

Podéis descargaros el código fuente en: MapBd 0.1.2.

Podéis descargaros el ejemplo en: ConsultasMed-0.0.2.tar.gz

Manual: CONSULTA MEDICA ejemplo de uso del MapBD.pdf

Nota:
- Para que se añadan estos métodos a vuestro proyecto, debéis de ejecutar la nueva versión de MapBD, para actualizar las clases.

- El código generado en compatible con Gambas2 y Gambas3  


En programa esta en pleno desarrollo, si encontrais algún bug o alguna mejora, me lo comentais.


Version 0.1.1:
- Nuevas opciones y funciones.
     'corregido el error de borrado.. 
     'añadido funciones -> ToOBj
     'lista: genera una lista despendiendo de un campo de un resultado
     'abre un archivo determinado (es opcional indicarlo)

Version 0.1.2:
- Actualizado para Gambas 3.2
         Activado componente gb.sqlite3

No hay comentarios:

Publicar un comentario