Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



martes, 10 de enero de 2012

Nueva version MapBD v.0.1.0


Nueva Versión MapBD 
versión 0.1.1
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 el nombre 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.tar.gz


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 


- Nuevas mejoras añadidas:
Version 0.1.2 (27 de marzo de 2013)
-Corregido bug de linea mal comentada.
-Genera módulo llamado conectar que es el encargado de abrir la base de datos (a añadir ademas de los ficheros de clases)
 


 Version 0.1.1 (31 de marzo de 2012)
  - 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)



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