Frequently asked questions - Base
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Spende
Wie kann ich eine Texttabelle mit der internen HSQLDB nutzen?
Zuerst einmal muss eine Texttabelle vorhanden sein:
ID,Name,Geburtsdatum
1,Bob the Dog,1967-03-14
2,Käthe Bäcker,1983-12-24
3,"Groß, Willi",2003-07-01
Diese Texttabelle hat den Namen "Geburtstage.csv"
Der Zugriff zu einer Texttabelle kann nicht über die grafische Benutzeroberfläche erstellt werden. Stattdessen wird über Extras > SQL eine Texttabelle erstellt. Die Felder in der Texttabelle müssen dem entsprechen, was die Texttabelle in der entsprechenden Reihenfolge liefert. So muss
- das Feld ID unverwechselbare Ganzzahlen,
- das Feld Name in doppelte Anführungszeichen gesetzt werden, wenn es ein Komma enthält und
- das Feld Geburtsdatum ein Datum in der Schreibweise YYYY-MM-DD enthalten.
How to create the table
- Open the HSQL database
- Execute ▸
- Type the following SQL in the Command to execute zone then click Execute
CREATE TEXT TABLE "Geburtstage" ("ID" INT GENERATED BY DEFAULT AS IDENTITY, "Name" VARCHAR(50) NOT NULL, "Geburtsdatum" DATE );
Die Texttabelle wird als Tabelle mit automatisch hochzählendem Primärschlüssel erstellt. Anschließend wird die Texttabelle, die sich im gleichen Verzeichnis wie die Datenbank befindet, eingebunden:
SET TABLE "Geburtstage" SOURCE "Geburtstage.csv;ignore_first=true;encoding=UTF-8";
Es erfolgt die Verbindung zu der Texttabelle. Die erste Zeile wird ignoriert, da sie in der Vorlage die Spaltenbeschriftungen enthält. Damit auch Sonderzeichen einwandfrei dargestellt werden, wird als Zeichencodierung UTF-8 gewählt.
Damit die Tabelle auch in Base sofort sichtbar wird muss anschließend Ansicht > Tabellen aktualisieren gewählt werden.
Die Optionen für die Tabelle können hier nachgeschlagen werden: http://hsqldb.org/doc/guide/ch09.html#set_table_source-section
Die Nutzung von Texttabellen unterliegt folgenden Nachteilen:
- Die Texttabelle kann gleichzeitig auch von externen Textprogrammen oder Tabellenkalkulationen geöffnet und bearbeitet werden. Datenverlust ist dann nicht auszuschließen.
- Änderungen an bereits geschriebenen Datensätzen führen dazu, dass die entsprechende Zeile in der Originaldatei geleert wird und in der neuen Fassung an den Schluss der Tabelle
angefügt wird. Wird z.B. in der obigen Datei der Datensatz 2 bearbeitet, so wird der Datensatz neue am Ende der Texttabelle angefügt. In der Textdatei erscheint dann eine leere Zeile. Die Zeilenreihenfolge entspricht nicht mehr der ursprünglichen Reihenfolge. Die Ansicht in Base zeigt allerdings weiter die korrekte Reihenfolge und unterdrückt diese Leerzeilen.
-- Only with Tools> SQL
SET TABLE "NomTableLiaison" SOURCE ON
- Download a database example (create the test.csv file in the same folder as the database with the above sample dataset).