Frage:

Frage:

Ich verwende LibreOffice Base, um wöchentliche Berichte zu erstellen. Ich habe eine Tabelle (mit dem Namen time_spent), die viele normalisierte Daten enthält, und ich verwende Ansichten, um die Verarbeitung durchzuführen, die zum Erstellen der benötigten Berichte erforderlich ist.

Jede Woche füge ich dieser Tabelle neue Daten hinzu und möchte nur für diese Woche neue Berichte exportieren.

Anstatt alle Ansichten, die zum Erstellen meines Berichts verwendet werden, neu zu erstellenjedenWoche wollte ich eine Ansicht mit dem Namen erstellen time_spent_selection, die im Wesentlichen ist SELECT * FROM "time_spent" WHERE "week" = '2015-04', und diese verwenden, um alle nachfolgenden Ansichten zusammenzustellen. Jede Woche müsste ich dann nur diese WHEREKlausel ändern und würde automatisch die Berichte für die richtige Woche erhalten.

LibreOffice Base verweigert jedoch das Speichern aller an time_spent_selectionder Ansicht vorgenommenen Änderungen mit der folgenden Fehlermeldung:

Auf die Tabelle wird durch die Ansicht verwiesen: Fehler in der Anweisung [DROP VIEW "time_spent_selection"]

Fehlermeldungsdialog Bildbeschreibung hier eingeben

Hier bugsist eine der Ansichten, auf die time_spent_selectionin ihrer Definition verwiesen wird.

Frage:

Wie kann ich diese Ansicht, von der andere Ansichten abhängen, zwangsweise ändern?

Mir ist bewusst, dass – wenn dies möglich wäre – alle Ansichten neu berechnet werden müssten, und das ist genau das, was ich möchte.

Antwort1

Dies kann eine Einschränkung der Backend-Datenbank sein, die standardmäßig HyperSQL Database (HSQLDB) Version 1.8 ist - wenn Sie das Standard-Backend verwenden, finden Sie die Dokumentation unterhttp://www.hsqldb.org/doc/1.8/guide/ch09.htmlund hat nichts wie ALTER VIEW oder REPLACE VIEW. Sie müssen DROP VIEW verwenden, was nur zulässig ist, wenn keine Abhängigkeiten bestehen.

Sie haben die Möglichkeit, auf die aktuelle Version von HSQLDB (Version 2.3) zu aktualisieren, die die Anweisung ALTER VIEW unterstützt (http://hsqldb.org/doc/guide/guide.html#dbc_view_creation). Die GUI würde die Transaktion wahrscheinlich immer noch nicht unterstützen, aber Sie könnten das Fenster Tools->SQL verwenden, um den Befehl ALTER VIEW direkt an die Datenbank zu senden. Anweisungen zum Upgrade der Datenbankkomponente auf Version 2.3 finden Sie in diesem Forenthread:[Tutorial] Aufteilen einer „eingebetteten HSQL-Datenbank“

Alternativ können Sie, anstatt ein bestimmtes Datum fest in das SQL der Ansicht zu codieren, die Ansicht auf eine Filter-/Dummy-Tabelle für das Datum verweisen lassen. Dann können Sie einfach die einspaltige, einzeilige Tabelle „reportDate“ öffnen und das Datum dort jede Woche ändern, ohne die Ansicht zu berühren.

verwandte Informationen