MapBD: mapeado de bases de datos Sqlite y MySql ( Enlace de descarga Version 0.0.3 - 4 de enero de 2012z
Para usarlo
1) lo que hay que introducir la ruta y el nombre de la base de datos (sqlite), en mi caso es "/home/uno/alfa",
2) Indicar la carpeta donde se guardaran las clases generadas (en mi caso, he puesto "/home/uno", en el vuestro, poner la ruta donde se encuentra vuestro proyecto.
3) Pulsar el botón "Generar", y os añadirá al directorio de vuestro proyecto las clases.
4) Cargar vuestro proyecto, y vereis las nuevas clases añadidas.
El objetivo del programa es analizar una base de datos (con SQLite, ya esta terminado, con MySql, me queda probarla), y obtener clases para usar la base de datos.
El programa esta basado en la idea de joseagch (ver enlace: Crear Clase Manipule Una Tabla En Mysql ).
Lo que hace es leer la base de datos, y analizar las tablas y sus campos creando los procedimientos habituales:
-editar
-borrar
-insertar
y algunas mas que os comento mas abajo.
Ademas de generar gridviews, formateados. Todo ello automaticamente !!! ahorrandonos un montón de código a escribir
Os comento:
Por cada tabla de cada base de datos crea dos clases:
{nombre_tabla}Registro-> Clase que contiene los campos de la tabla
{nombre_tabla}' -> Clase que trabaja con los registros de la tabla (inserta, edita, borra, etc...)
Para crear una clase que manipule los datos :
PUBLIC clase_para_trabajar AS NEW {nombre_tabla}
Atributos de la clase {nombre_tabla}Registro
Ademas de los campos (con sus tipos) tiene estas dos mas:
Métodos de la clase {nombre_tabla}:
.informe() : muestra en consola datos acerca de la base de datos, tabla, y campos
.Abrir() : abre la conexion a la base de datos
'ejemplo de uso:
registrohola.abrir()
registrohola.abrir()
.Cerrar(): cierra la conexion a la base de datos
.total(): devuelve el numero de registro que contiene la tabla
.Insertar(): insertar en la tabla, los valores de los atributos de la clase
Por cada campo que tenga la tabla:
.Modificar{nombre_del_campo}(valor): modifica el registro cuyo campo "nombre_del_campo" sea igual a "valor"
'ejemplo de uso:
PUBLIC SUB ButtonEditarId_Click()
WITH registrohola
.id = ValueBoxId2.Value
.texto = TextBoxTexto2.Text
.datos = ValueBoxFloat2.Value
.fecha = ValueBoxFecha2.value
.modificarId(registrohola.id)
resultado = .contenido()
END WITH
gridviewColumnas.Rows.count = 0 'para modificar el numero de filas, y forzar la lectura
gridviewColumnas.Rows.Count = resultado.Count
END
PUBLIC SUB ButtonEditarId_Click()
WITH registrohola
.id = ValueBoxId2.Value
.texto = TextBoxTexto2.Text
.datos = ValueBoxFloat2.Value
.fecha = ValueBoxFecha2.value
.modificarId(registrohola.id)
resultado = .contenido()
END WITH
gridviewColumnas.Rows.count = 0 'para modificar el numero de filas, y forzar la lectura
gridviewColumnas.Rows.Count = resultado.Count
END
.Borrar{nombre_del_campo}(valor): borra el registro cuyo campo "nombre_del_campo" sea igual a "valor"
Busquedas:Para los campos que sean tipo string:
.BuscarContenido{nombre_del_campo}(valor, opcional campo_por_el_que_ordeno): Devuelve el "result" de una consulta donde los registros contienen "valor", y opcionalmente los ordenas segun el campo indicado en "campo_por_el_que_ordeno"
.contenido(): devuelve el "result" de la tipica consulta: "Select * From nombre_tabla"
Ejecucion de consultas:
.sql(consulta_sql) : devuelve el resultado de la consulta en la tabla, segun la ejecucion de la sentencia sql "consulta_sql"
.mostrarRegistro(numero , grid , OPTIONAL sqlcadena ): Devuelve un "resul", (util para la gridviews crados con "gridFormatearFilas", ver abajo), que es el registro "numero", ejecutando la sentencia "Select * From nombre_tabla" o la dada opcionalmente "sqlcadena"
Salidas gridviews:
.gridFormatearColumnas(grid): formatea al gridviews "grid", con los titulos de las columnas igual a los campo.
'ejemplo de uso:
gridviewColumnas = registrohola.gridFormatearColumnas(gridviewColumnas)
gridviewColumnas = registrohola.gridFormatearColumnas(gridviewColumnas)
.gridFormatearFilas(grid): formatea al gridviews "grid", con los titulos de las filas igual a los campo.
'ejemplo de uso:
gridviewFilas = registrohola.gridFormatearFilas(gridviewFilas)
gridviewFilas = registrohola.gridFormatearFilas(gridviewFilas)
Una aplicación de ejemplo realizado con las clases que genera el programa:
Enlace de descarga del ejemplo: Ejemplo: pruebasMapBDgenerado-0.0.3.tar.gz Actualizado a 4 de enero de 2012
Nota:
Si encontrais bugs, y/o mejoras a añadir (nuevos métodos, sentencias sql comunes), me lo comentais, para irlo "puliendo" y que sea mas util.
Ver también el ejemplo que os adjunto para sacarle provecho a la aplicación.