Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html) +--- Tema: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD (/thread-1492.html) |
Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - alberto-moyano - 29-08-2023 Hola gente, Necesito tomar una decisión y me gustaría leer la opinión de los más duchos en manejo de base de datos y manipulación de archivos, para analizar cuál camino tomar. La cuestión es la siguiente: poseo una base de datos (es simple) ya tengo todo el Alta/Baja/Modificación (ABM) funcionando y no hay errores, tampoco con las consultas, ahora bien, los datos de una determinada consulta (cualquiera) deben ser convertidos a un archivo de texto (que en realidad es otra base de datos), la cuestión es que no sé que es más conveniente, si exportar desde SQLite directamente un archivo de texto (el resultado de la consulta) con el texto adicional inyectado (si es que esto se puede hacer, algo que desconozco) o, exportar un CSV solo con los datos (esto ya lo puedo hacer con éxito) y con una función inyectar el texto adicional al archivo CSV y darle el nuevo formato, en cualquiera de los 2 caminos voy a tener que estudiar el proceso y de ahí mi pedido de ayuda en el análisis de qué sería mejor implementar. El archivo resultante es básicamente un archivo bibtex (que no es más que un archivo txt con extensión .bib), este es en realidad un archivo de base de datos para LaTeX, el mismo puede ser procesado con bibtex (escrito en C) o con BibLaTeX (escrito en Perl) este procesamiento genera un nuevo archivo con extensión .bbl que es el que utiliza el compilador de LaTeX para generar las diferentes salidas (PDF, ePub, html, etc.). Como es el contenido de un archivo .bib (veamos el caso de un libro) Código: @Book{Metz2001, %clave identificadora La clave identificadora y todo el contenido entre llaves, es lo que existe en la base de datos y que viene como resultado del query. Ustedes que camino tomarían. Saludos RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - tincho - 29-08-2023 Hola Alberto. Si estas trabajando con gambas y un "result" de la consulta lo recorrés tomando el nombre del campo y el valor de este, ya que estas trabajando con un solo registro correcto?. Luego lo ordenas le pones las llaves y toda la parafernalia y listo. RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - alberto-moyano - 30-08-2023 Hola Tincho, Sí, estoy dentro de Gambas y el resultado lo obtengo con un result, el tema es que pensé que era mejor escribir el CSV en un temporal y luego formatearlo, ya que hay diferentes plantillas (tipos de datos), una para cada tipo de objeto (objeto es un tipo de referencia: @article, @book, @incollection, @thesis, etc., etc.), y la cantidad de datos sumadas todas las plantillas en juego son muchísimos, de ahí mi duda de si no era una alternativa hacerlo directamente desde SQL (pero insisto, no sé siquiera si es posible). Gracias por tu comentario. RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - tincho - 30-08-2023 (30-08-2023, 00:34)alberto-moyano escribió: todas las plantillas en juego son muchísimos, de ahí mi duda de si no era una alternativa hacerlo directamente desde SQL (pero insisto, no sé siquiera si es posible). Sin ver la base de datos no puedo entrar en demasiado de talle, sin embargo te sugiero que hagas una vista para cada @OBJETO y luego desde gambas elijas la vista que corresponda con el texto que deseas generar. De esta manera tendrias los datos y las etiquetas y luego es acomodar el texto con las llaves y los espacios para dar el formato. Para crear una vista, como sabes, se hace así: Código: CREATE VIEW "view_albums" AS SELECT Luego para recorrer los datos: Código: Public con1 As New Connection '' Conexion a la base de datos RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - alberto-moyano - 30-08-2023 Hola Tincho, gracias por tu aporte, lo voy a estudiar. Mi proyecto es público, puedes acceder a él si quieres, una parte del software (70%) yo lo uso intensamente (unas 6 horas diarias) ya que está terminado, el resto es sobre lo que voy trabajando. Lo tenía en github pero lo pase a gitlab (los motivos son largos de explicar) https://gitlab.com/alberto.alejandro.moyano/gbtexpublisher Aclaración: el software tiene su base en saber LaTeX (incluido PlainTeX, o sea primitivas) yo lo considero un facilitador, esto es, todo lo que se puede hacer con él, también se puede hacer sin él. El punto son sus potenciales usuarios (o posibles) que son diseñadores gráficos, correctores de texto y personas que hacen editing, es decir, gente muy por fuera de la programación, y de la consola!!! Saludos RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - tincho - 31-08-2023 ok, eche un vistazo a la base de datos, la vista seria algo así: Código: CREATE VIEW "view_bibtext" AS SELECT Res = Conn.Exec("Select * From view_bibtex") o para solo un registro Res = Conn.Exec("Select * From view_bibtex where id=" & txtID.Text) Luego este código te generara el contenido .bib y también lo guardara en el directorio /tmp Código: Public Sub BtnExportarBIB_Click() Tuve unos problemas con el directorio de trabajo, la base de datos y la conexión, así que te comento las cosas que cambie de tu programa:
Evidentemente hay que tener LaTex instalado para usar programa . RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - alberto-moyano - 31-08-2023 Hola Tincho, gracias por el aporte Tuve unos problemas con el directorio de trabajo, la base de datos y la conexión, así que te comento las cosas que cambie de tu programa:
Te hago algunas sugerencias, cosas que yo encararía de otra manera.
Gracias por el feedback Es cierto, que tienes que instalar LaTeX y no solo eso, sino que muchos de los paquetes que uso no son de la instalación «base», por consiguiente para no perderse entre el tex-live del CTAN y el tex-live de las diferentes distros (que cambian el contenido de los metapaquetes, no entiendo por qué) siempre se termina haciendo una instalación full, lo que significa 5gb de archivos. En unos días preparo un video que muestre como funciona una edición literada (es decir, desde un mismo archivo de LaTeX, sacar de un tirón un PDF, un ePub y un XML, por ejemplo, todos con diferentes metadatos). Gracias nuevamente RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - tincho - 31-08-2023 (31-08-2023, 14:15)alberto-moyano escribió: Supongo que te referís a poner la conexión en un módulo, lo pensé, veré de instrumentarlo Si, exacto. conviene ponerlo en un módulo que marcas como clase de inicio y luego Fmain.Show() o también podes poner todo directamente en Fmain Esto de ponerlo en un módulo de inicio separado resulta muy útil a la hora de reutilizar el código para otro programa ya que al copiar el andamiaje queda medio camino hecho ya. (31-08-2023, 14:15)alberto-moyano escribió: No lo use nunca, lo voy a estudiar, intuyo que le puedo dar un buen uso Sobre lo de los bucles recursivos... hice un formulario que inmita el tuyo pero con este método y lo de la centralización del la conexión. Código: Public Sub Form_Open() El método fwrite lo que hace es revisar un objeto y si su Tag coincide con el que viene como segundo parámetro entonces le pone el texto del tercer parámetro, si por el contrario el objeto es un contenedor entonces se llama a si mismo y vuelta a empezar pero a partir de ese contenedor. Esto te lo llevas a cualquier formulario e incluso podes ponerlo fuera de la clase del formulario, por ejemplo en un módulo ya que los objetos se pasan siempre por referencia. RE: Que camino es mejor tomar en SQLite o forma de consulta a la BBDD - Shell - 20-09-2023 Puede que este mensaje sea mejor moverlo al foro de base de datos. |