[Resuelto] Evitar que LibreOffice Base modifique SQL
[Resuelto] Evitar que LibreOffice Base modifique SQL
Buenas tardes.
El otro día me encontré con que LibreOffice Base había modificado ligeramente la sentencia SQL de una consulta. Deduzco que lo hace cada vez que se edita una consulta en modo normal y se guarda, entonces reescribe el SQL, y aunque haya modificado simplemente un alias, lo reescribe todo y lo formatea en una sola línea. Pero esto tiende a provocar fallos en una consulta compleja y me disgusta enormemente, así que prefiero usar únicamente el editor SQL.
Y por otra parte, si uso siempre el editor SQL, al guardar y abrir sí que se mantiene la sentencia, pero igualmente queda formateada en una sola línea.
La pregunta es: ¿Existe la posibilidad de evitar/desactivar que LibreOffice Base modifique el SQL de las consultas?
Gracias de antemano y un saludo.
El otro día me encontré con que LibreOffice Base había modificado ligeramente la sentencia SQL de una consulta. Deduzco que lo hace cada vez que se edita una consulta en modo normal y se guarda, entonces reescribe el SQL, y aunque haya modificado simplemente un alias, lo reescribe todo y lo formatea en una sola línea. Pero esto tiende a provocar fallos en una consulta compleja y me disgusta enormemente, así que prefiero usar únicamente el editor SQL.
Y por otra parte, si uso siempre el editor SQL, al guardar y abrir sí que se mantiene la sentencia, pero igualmente queda formateada en una sola línea.
La pregunta es: ¿Existe la posibilidad de evitar/desactivar que LibreOffice Base modifique el SQL de las consultas?
Gracias de antemano y un saludo.
Última edición por Urxvt el Mié Oct 10, 2018 10:39 pm, editado 1 vez en total.
Debian 9 & i3wm + LibreOffice 5.2.7.2
Re: Evitar que LibreOffice Base modifique SQL de las consult
Considero que no hay manera de evitarlo de forma automática.
¿Tendrás a la mano un ejemplo en donde se note eso que comentas?
Saludos, Federico.
¿Tendrás a la mano un ejemplo en donde se note eso que comentas?
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Evitar que LibreOffice Base modifique SQL de las consult
Tengo esta consulta, y el agrupador por año quedó "roto" y nos dio algún susto en facturación... Esto sucedió después de abrir el editor de consultas, modificar algo irelevante y guardar:
Por otra parte, así es como tengo la sentencia SQL formateada y me es más cómodo de leer y editar, pero al guardar se recompone en una única línea.
Está previsto para LibreOffice 6.2 usar Firebird como motor de bases de datos, y dejarán HyperSQL-DB, aunque lo mantendrán para no obligar a migrar. No sé si ese cambio puede ser debido a algún tipo de bug, más allá de la eficiencia como motor. Estaría bien saber si hay bugs conocidos en esta parte. Pero esa decisión creo que sólo la saben los propios desarrolladores.
Código: Seleccionar todo
SELECT YEAR("Jornada") AS "Any",
QUARTER("Jornada") AS "Trimestre",
"Tasques"."ID_Treball" AS "ID_Treball",
"Tasques"."ID_Treballador" AS "ID_Treballador",
"PreusAnuals"."PreuHora" AS "Preu hora",
"PreusAnuals"."PreuKm" AS "Preu km",
SUM("Tasques"."Hores") AS "Total hores",
SUM("Tasques"."Kms") AS "Total kms",
SUM("Tasques"."Extres") AS "Total extres",
SUM("PreuHora" * "Hores") AS "Cost hores",
SUM("PreuKm" * "Kms") AS "Cost kms",
COALESCE (SUM("PreuHora" * "Hores"),
0) + COALESCE (SUM("PreuKm" * "Kms"),
0) + COALESCE (SUM("Extres"),
0) AS "Cost total"
FROM "Tasques",
"Treballadors",
"Treballs",
"PreusAnuals"
WHERE "Tasques"."ID_Treballador" = "Treballadors"."IDTreballador"
AND "Tasques"."ID_Treball" = "Treballs"."IDTreball"
AND "PreusAnuals"."ID_Treballador" = "Treballadors"."IDTreballador"
AND "PreusAnuals"."Any" = YEAR("Tasques"."Jornada")
GROUP BY YEAR("Jornada"),
QUARTER("Jornada"),
"Tasques"."ID_Treball",
"Tasques"."ID_Treballador",
"PreusAnuals"."PreuHora",
"PreusAnuals"."PreuKm"
ORDER BY "Any" ASC,
"Trimestre" ASC
Está previsto para LibreOffice 6.2 usar Firebird como motor de bases de datos, y dejarán HyperSQL-DB, aunque lo mantendrán para no obligar a migrar. No sé si ese cambio puede ser debido a algún tipo de bug, más allá de la eficiencia como motor. Estaría bien saber si hay bugs conocidos en esta parte. Pero esa decisión creo que sólo la saben los propios desarrolladores.
Debian 9 & i3wm + LibreOffice 5.2.7.2
Re: Evitar que LibreOffice Base modifique SQL de las consult
¿No te servirá algo similar a:?Por otra parte, así es como tengo la sentencia SQL formateada y me es más cómodo de leer y editar, pero al guardar se recompone en una única línea.
Código: Seleccionar todo
SELECT * FROM "Tabla" _
WHERE "Campo" = 'FEDERICO'
Código: Seleccionar todo
SELECT YEAR("Jornada") AS "Any", _
QUARTER("Jornada") AS "Trimestre", _
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Evitar que LibreOffice Base modifique SQL de las consult
Estaría bien así, tal y como dices, terminando las líneas (menos la última) con " _". No obstante me devuelve error de sintaxis. A lo mejor es por la versión (5.2.7.2).
Debian 9 & i3wm + LibreOffice 5.2.7.2
Re: Evitar que LibreOffice Base modifique SQL de las consult
¿La coma es necesaria?
¿Por ejemplo así:?
Código: Seleccionar todo
SELECT YEAR("Jornada") AS "Any" _
, QUARTER("Jornada") AS "Trimestre" _
, wwwwwwwwwwwww
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Evitar que LibreOffice Base modifique SQL de las consult
Entonces seguro que es por la diferencia de versión. Por cierto, en las macros sí que me permite usar el espacio y la barra plana, así siempre procuro no hacer líneas demasiado largas.
Lo que haré entonces es guardar las sentencias SQL en archivos independientes en un directorio con git, así de paso tendré control de versiones y en caso de modificar algo siempre podré consultar y comparar entre ficheros. Y lo mismo con las macros, ya puestos, jeje. Pero me ayuda mucho saber que es posible hacer lo que comentas. Bajaré una AppImage del LibreOffice más actualizado y haré pruebas con eso. Gracias!
Pongo el tema como resuelto, entonces.
Lo que haré entonces es guardar las sentencias SQL en archivos independientes en un directorio con git, así de paso tendré control de versiones y en caso de modificar algo siempre podré consultar y comparar entre ficheros. Y lo mismo con las macros, ya puestos, jeje. Pero me ayuda mucho saber que es posible hacer lo que comentas. Bajaré una AppImage del LibreOffice más actualizado y haré pruebas con eso. Gracias!
Pongo el tema como resuelto, entonces.
Debian 9 & i3wm + LibreOffice 5.2.7.2
Re: [Resuelto] Evitar que LibreOffice Base modifique SQL
Si, parece que la clave esta en el espacio y el guión bajo:
Vamos a suponer que tengo una tabla llamada exactamente Empleados
En mi versión de LO funciona correctamente la siguiente estructurarespetando exactamente cada linea.
En este caso da error:
Vamos a suponer que tengo una tabla llamada exactamente Empleados
En mi versión de LO funciona correctamente la siguiente estructura
Código: Seleccionar todo
SELECT CAMPO1,
CAMPO2,
CAMPO3 FROM "Empleados" _
WHERE "CAMPO1" = 'FEDERICO'
En este caso da error:
Código: Seleccionar todo
SELECT CAMPO1,
CAMPO2,
CAMPO3 FROM "EMPLEADOS" _
WHERE "CAMPO1" = 'FEDERICO'
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: [Resuelto] Evitar que LibreOffice Base modifique SQL
Perdón por mi miopía, pero la única diferencia que veo entre una y otra es que el nombre de la tabla en una está en mayúsculas y la otra en minúsculas (lo cual sería suficiente para dar error), pero no he visto diferencias en el tema de los espacios o los guiones bajos.
Un saludo!
Un saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: [Resuelto] Evitar que LibreOffice Base modifique SQL
Exacto coincido contigo longi.
Se intentó decir que LibreOffice respeta correctamente la estructura de una instrucción SQL aunque ella esté segmentada en varias líneas.
Urxvt comenta que al guardar su instrucción SQL (que esta segmentada en varias líneas) el programa las une en una sola y él desea que al salvar dicha instrucción respete tales segmentaciones.
¿Cómo podemos solucionar lo anterior?
Sugerencias:
1) Utilizando el espacio y el guión bajo
2) Poniendo atención en los detalle de la consulta como por ejemplo el que la tabla sea escrita de forma correcta, respetando si se puede mayúsculas o minúsculas.
3) Etc.
Se intentó decir que LibreOffice respeta correctamente la estructura de una instrucción SQL aunque ella esté segmentada en varias líneas.
Urxvt comenta que al guardar su instrucción SQL (que esta segmentada en varias líneas) el programa las une en una sola y él desea que al salvar dicha instrucción respete tales segmentaciones.
¿Cómo podemos solucionar lo anterior?
Sugerencias:
1) Utilizando el espacio y el guión bajo
2) Poniendo atención en los detalle de la consulta como por ejemplo el que la tabla sea escrita de forma correcta, respetando si se puede mayúsculas o minúsculas.
3) Etc.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!