Thedary, he modificado el ejemplo casi por completo para convertirlo a SQlite3, he visto una serie de cosas que quería comentarte ya que no son del todo correctas y podrían dar lugar a errores.
- Las Query que hacias a la hora de recuperar los datos eran muy pesadas, recuperabas todos los datos y después seleccionabas el que querías de la tabla, eso consume más memoria y ralentiza el proceso si hay muchas entradas.
- La lista de categorías está en un archivo INI, y teniendo una BD es mejor aprovecharla también.
- A la hora de modificar las entradas de los sitios hacías 1 query por cada entrada lo que hacen un total de 6 querys.
- Al hacer las 6 querys por separado ralentizabas el trabajo y creabas un BUG significativo, que era que modificabas por ejemplo el usuario, pero le decías que modificara todas las entradas que coincidieran con el usuario anterior: Por ejemplo, tienes 3 Webs y en las 3 el usuario es "Pepito", si cambiabas en una de ellas ese "Pepito" el programa lo modificaba en las 3.
Eso mismo pasaba con todas las entradas.
- Al borrar una entrada se creaba un problema similar, si había varias entradas con la misma web se borraban todas.
Ahora mismo no me acuerdo de ninguno más.
Al proyecto que he subido le he solucionado los problemas y he hecho otra serie de modificaciones:
- Lo de recuperar las querys necesarias lo he hecho añadiendo un "LIKE" al query.
- La lista de categorías la he puesto dentro de la base de datos, así te ahorras un archivo y además está todo juntito.
- Lo de las 6 Querys las he unificado en una así reduciendo el trabajo de la Base de Datos.
- Lo del problema del BUG a la hora de modificar lo he arreglado añadiendo a la base de datos una columna numérica autoincremental, así cada entrada tiene su número propio y no modifica ninguna más.
- Lo de borrar más de una entrada al querer borrar una también lo he solucionado con lo de antes.
- He optimizado un poco el código para que tenga menos líneas y sea más modificable, por ejemplo, al iniciar el programa ejecutabas un query para mostrar los datos de la base, y al seleccionar una categoría hacías otro query aparte para mostrar solo los datos de esa categoría, yo los he unificado en la misma global.
- He visto que cada vez que sacabas un dato de la base de datos lo hacías sacando toda la base a una tabla y después filtrando esa tabla con los resultados que querías, eso hace que el programa ocupe más memoria y cuanto más grande es la base más lento se vuelve. Lo he arreglado en combinación de poner un "LIKE" en el query además de el número de la entrada.
Me dejo alguna cosa seguro pero es que tengo memoria pez y se me olvidan cosas
Te dejo el proyecto modificado para que le eches un vistazo
- HIDE: ON
- Hidebb Message Hidden Description
Y ante todo quiero dejar una cosa clara:
No estoy criticando ni metiéndome con el proyecto ni nada por el estilo, solo intento ayudarle a mejorar y que así sea capaz de hacerlo mejor la próxima vez.
También apuntar que no soy perfecto ni un sabio por lo que yo también me equivoco y puede que el proyecto se pueda mejorar e incluso que tenga algún pequeño fallo.
Bueno, échale un vistazo al proyecto y me comentas