
Utilizo LibreOffice Base para crear informes semanales. Tengo una tabla (llamada time_spent
) que contiene una gran cantidad de datos normalizados y estoy usando vistas para realizar el procesamiento necesario para producir los informes que necesito.
Cada semana agrego nuevos datos a esa tabla y quiero exportar informes nuevos solo para esa semana.
En lugar de volver a crear todas las vistas que se utilizan para crear mi informecadasemana, esperaba crear una vista llamada time_spent_selection
, que es esencialmente SELECT * FROM "time_spent" WHERE "week" = '2015-04'
, y usarla para ensamblar todas las vistas posteriores. Cada semana entonces sólo tendría que cambiar esa WHERE
cláusula y automáticamente obtendría los informes de la semana correcta.
Sin embargo, LibreOffice base niega haber guardado los cambios realizados para time_spent_selection
ver con el siguiente mensaje de error:
La vista hace referencia a la tabla: errores en la declaración [DROP VIEW "time_spent_selection"]
Aquí bugs
está una de las vistas a las que hace referencia time_spent_selection
en su definición.
Pregunta:
¿Cómo puedo forzar la modificación de esta vista, de la que dependen otras vistas?
Entiendo que, si esto fuera posible, habría que volver a calcular todas las vistas y esto es exactamente lo que quiero.
Respuesta1
Esto puede ser una limitación de la base de datos backend, que de forma predeterminada es HyperSQL Database (HSQLDB) versión 1.8; si está utilizando el backend predeterminado, la documentación se encuentra enhttp://www.hsqldb.org/doc/1.8/guide/ch09.htmly no tiene nada como ALTERAR VISTA o REEMPLAZAR VISTA. Tienes que usar DROP VIEW, que solo está permitido si no hay dependencias.
Tiene la opción de actualizar a la versión actual de HSQLDB (versión 2.3), que admite la instrucción ALTER VIEW (http://hsqldb.org/doc/guide/guide.html#dbc_view_creation). La GUI probablemente aún no admita la transacción, pero podría usar la ventana Herramientas->SQL para emitir directamente el comando ALTER VIEW a la base de datos. Las instrucciones sobre cómo actualizar el componente de la base de datos a la versión 2.3 se encuentran en este hilo del foro:[Tutorial] Dividir una "base de datos HSQL integrada"
Alternativamente, en lugar de codificar una fecha particular en el SQL de la vista, haga que la vista haga referencia a una tabla de filtro/ficticia para la fecha. Luego puede simplemente abrir la tabla "reportDate" de una columna y una fila y modificar la fecha allí cada semana sin tocar la vista.