🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

(gelöst) Zeichenkette als Default einer Spalte

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Freischreiber
* LO-Experte *
Beiträge: 832
Registriert: Fr 28. Mär 2014, 10:41

(gelöst) Zeichenkette als Default einer Spalte

Beitrag von Freischreiber » Do 25. Dez 2014, 15:27

Hallo,

ich würde gerne den Inhalt einer Tabellenspalte automatisch aus den Inhalten der anderen Spalten des Datensatzes füllen lassen, sobald die Zelle leerbleibt.

Dazu habe ich den Befehl für den Datumsstempel abgewandelt in:

Code: Alles auswählen

ALTER table "Tabelle1" alter column "Zusammen" set DEFAULT ("Zeichenkette1" + "Zeichenkette2")
wobei "Zeichenkette1" und "Zeichenkette2" die ersten beiden Spalten sind und "Zusammen" die zu füllende dritte Spalte.

Aber Base liefert mir:
1: Wrong data type or data too long in DEFAULT clause: ( in statement [ALTER table "Tabelle1" alter column "Zusammen" set DEFAULT (]
Dabei ist Datentyp aller Spalten Textvarchar, und ich habe sogar die maximale Länge der dritten Spalte doppelt so hoch gestellt wie Spalten 1 und 2.

Geht so etwas überhaupt mit DEFAULT?

Gruß
Freischreiber
Zuletzt geändert von Freischreiber am Sa 3. Jan 2015, 16:47, insgesamt 1-mal geändert.
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeichenkette als Default einer Spalte

Beitrag von F3K Total » Do 25. Dez 2014, 17:27

Moin,
Freischreiber hat geschrieben:Geht so etwas überhaupt mit DEFAULT?
Nein!
Und mit SQL-Befehlen der mitgelieferten Version der HSQLDB 1.8.0.10, meines Wissens nach, überhaupt nicht.
Wenn Du allerdings die Datenbank in Frontend und Backend zerteilst, siehe z.B. hier, kannst Du die HSQLDB z.B. auf die aktuelle Version 2.3.2 upgraden.
Diese Version beherrscht TRIGGER.
Mit Triggern kann man das erreichen.
Eine andere, eventuell einfachere Möglichkeit, wäre die Verwendung von Makros. Siehe Beispiel anbei, ist aber fehleranfällig.

Gruß R
Dateianhänge
Spalte_leer.zip
nur entpacken
(11.74 KiB) 116-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Freischreiber
* LO-Experte *
Beiträge: 832
Registriert: Fr 28. Mär 2014, 10:41

Re: Zeichenkette als Default einer Spalte

Beitrag von Freischreiber » Do 25. Dez 2014, 17:45

Hallo F3K Total,

:oops:
An deiner Antwort sehe ich, daß ich die Frage schon mal gestellt hatte... das Problem mit dem Zusammensetzen hab ich an mehreren Stellen.

Das Aufteilen der Datenbank hab ich in deinem Video schon besichtigt. Das würde mir auch gefallen, aber was das genau für Konsequenzen hat, ist mir noch nicht klar:

- Kann ich dann Tabellen immer noch in Base bearbeiten (Spalten hinzufügen, umbenennen, Inhalte anschauen und ändern)?

- Kann ich Beziehungen grafisch ziehen?

- Muß ich meine Abfragen abändern?

- Noch schlimmer: Laufen die Makros weiter?

- Kann ich die Datenbankdatei/-en von einem Rechner auf einen zweiten übertragen? Dazu muß dann wohl auch auf dem zweiten Rechner die neuere Datenbank installiert sein?

- Kann man die Aufteilung jemals rückgängig machen, wenn man wieder eine Datei haben will?

Gruß - und frohe Weihnachten!
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeichenkette als Default einer Spalte

Beitrag von F3K Total » Do 25. Dez 2014, 18:30

Klar ist, dass nicht alle Funktionalitäten der grafischen Benutzeroberfläche, die die Datenbank betreffen, verwendbar sind.
Sicher kann man per SQL Tabellen, Beziehungen, Ansichten, Trigger usw. erzeugen/ändern/löschen


- Muß ich meine Abfragen abändern? -> Nur wenn du SQL Befehle verwenden willst, die die Version 1.8.0.10 nicht unterstützt, z.B. DATEADD
- Noch schlimmer: Laufen die Makros weiter? ->Ja, es sei denn verwendete SQL-Befehle passen nicht mehr

- Kann ich die Datenbankdatei/-en von einem Rechner auf einen zweiten übertragen? -> ja Dazu muß dann wohl auch auf dem zweiten Rechner die neuere Datenbank installiert sein? -> nicht installiert, man braucht nur zwei Dateien, hsqldb.jar und sqltool.jar

- Kann man die Aufteilung jemals rückgängig machen, wenn man wieder eine Datei haben will? Ja, zur Not kopiert man alles, Tabellen/Makros/Formulare/Berichte/Abfragen per drag and drop in eine leere eingebettete Datenbank.

Aber Achtung: Wenn du die Treiber der HSQLDB 2.3.2 im global Classpath eingetragen hast, darfst Du auf KEINEN FALL eine eingebettete Datenbank 1.8.0.10 mit der so eingerichteten Base Installation öffnen, sie würde ZERSTÖRT. Es gibt Wege den Treiber nicht im global Classpath einzutragen, suche dazu z.B.FreeHSQLDB von Villeroy.

HTH R
Windows 11: AOO, LO Linux Mint: AOO, LO

Freischreiber
* LO-Experte *
Beiträge: 832
Registriert: Fr 28. Mär 2014, 10:41

Re: Zeichenkette als Default einer Spalte

Beitrag von Freischreiber » Fr 26. Dez 2014, 09:48

Hallo F3K Total,

ich habe ein bißchen rumgesucht, finde es aber ernüchternd.
Sicher kann man per SQL Tabellen, Beziehungen, Ansichten, Trigger usw. erzeugen/ändern/löschen
Man kann heißt: man muß, oder?

Dein Link hat mich zu dieser Datei geführt: http://www.mediafire.com/?hv0g8n7ceqvq5xg

Das ist eine Lösung mit mitgeliefertem HSQL 2.3.0, und sie läuft, aber man sieht in der Base-Oberfläche keine Beziehungen zwischen den Tabellen.
Sie arbeitet ohne global class path, also wohl ungefährlicher als mit.

Weißt du, ob man ein anderes GUI verwenden kann, etwa http://www.heidisql.com/?

Oder noch anders gefragt: Irgendwann will Base ja mit Firebird-DB laufen. Wäre es nicht sinnvoller, beim Splitten gleich dahin zu wechseln? Gibt es dafür ein GUI, solange Base nicht so weit ist? Ohne GUI wäre es für mich nichts.

Und es scheint keine einzige Anfänger-Anleitung auf deutsch zu geben. Sowas würde ich zur Not ja selbst schreiben, wenn ich mal einen narrensicheren Weg kenne...

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeichenkette als Default einer Spalte

Beitrag von F3K Total » Fr 26. Dez 2014, 11:23

Moin,
ich habe dir inzwischen zwei Lösungsmöglichkeiten zu deiner ursprünglichen Frage Zeichenkette als Default einer Spalte genannt.
Per PN habe ich dir sogar eine kleine gesplittete Testdatenbank HSQLDB 2.3.2 mit funktionierendem Trigger angeboten.
Es scheint mir so, als ob du daran nicht interessiert bist, denn du gehst kaum darauf ein.
Stattdessen stellst Du neue Gegenfragen und bringst neue Themen ins Spiel.
Hast du überhaupt eine Datenbank für die du eine Zeichenkette als Default benötigst, oder spielst Du nur rum und willst dich wichtig machen?
Meine letzten Antworten in diesem Thread:
Freischreiber hat geschrieben:Das ist eine Lösung mit mitgeliefertem HSQL 2.3.0, und sie läuft, aber man sieht in der Base-Oberfläche keine Beziehungen zwischen den Tabellen.
Wenn in der Beispieldatenbank keine Beziehungen definiert sind, kann man sie nicht sehen.
Ich habe diverse gesplittete HSQLDB 2.3.2 Datenbanken, hier ein Bild von den Beziehungen einer dieser:
Relations.png
Relations.png (14.92 KiB) 3181 mal betrachtet
Freischreiber hat geschrieben:Weißt du, ob man ein anderes GUI verwenden kann, etwa http://www.heidisql.com/?
Selbst die HSQLDB bringt eine Benutzeroberfläche mit, ich kenne mich damit nicht aus.
Ich benötige auch nichts anderes, führe die paar Änderungen, die nach dem Teilen der DB noch notwendig sind, per SQL durch.
Freischreiber hat geschrieben:Irgendwann will Base ja mit Firebird-DB laufen. Wäre es nicht sinnvoller, beim Splitten gleich dahin zu wechseln?
Base läuft bereits mit Firebird, man muss es nur aktivieren. Wie man eine Firebird mit Base verbindet kann ich nicht sagen, vielleicht ein Thema für Dich?
Freischreiber hat geschrieben:Ohne GUI wäre es für mich nichts.
Wie schon angedeutet, ich bevorzuge:
  • Datenbank-Design mit der eingebetteten HSQLDB 1.8.0.10-> GUI vorhanden!
  • Datenbank teilen, wenn nötig im Server-Mode laufen lassen (Multi-User, mit verschiedenen Usern/PW/Rollen/Berechtigungen)
  • Datenbank ggf. upgraden (im Augenblick HSQLDB2.3.2 -> Berechtigungen auch spaltenweise möglich)
Gruß R
Zuletzt geändert von F3K Total am Fr 26. Dez 2014, 11:55, insgesamt 1-mal geändert.
Windows 11: AOO, LO Linux Mint: AOO, LO

Freischreiber
* LO-Experte *
Beiträge: 832
Registriert: Fr 28. Mär 2014, 10:41

Re: Zeichenkette als Default einer Spalte

Beitrag von Freischreiber » Fr 26. Dez 2014, 11:48

Hallo,
Hast du überhaupt eine Datenbank für die du eine Zeichenkette als Default benötigst, oder spielst Du nur rum und willst dich wichtig machen?
Ja. Sonst würde ich nicht fragen, weil: Nein, ich will mich nicht wichtig machen. Ich freue mich auf den Tag, wo alles läuft und ich keine dummen Fragen mehr stellen muß. Ich verstehe auch nicht, warum du so gereizt reagierst.

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeichenkette als Default einer Spalte

Beitrag von F3K Total » Fr 26. Dez 2014, 12:14

Moin,
Freischreiber hat geschrieben:warum du so gereizt reagierst.
Lies meinen letzten Beitrag, in den ersten fünf Zeilen stehen die Gründe!
R
PS:
Man wird über den Eingang einer PN per EMAIL informiert wenn man im persönlichen Bereich des Forums diese Einstellung vornimmt
PN.PNG
PN.PNG (2 KiB) 3165 mal betrachtet
Windows 11: AOO, LO Linux Mint: AOO, LO

Freischreiber
* LO-Experte *
Beiträge: 832
Registriert: Fr 28. Mär 2014, 10:41

Re: Zeichenkette als Default einer Spalte

Beitrag von Freischreiber » Sa 27. Dez 2014, 19:12

So, ich hab sie jetzt gesplittet nach dieser: https://forum.openoffice.org/en/forum/v ... 83&t=65980
Anleitung.

Diese Einstellung im persönlichen Bereich ist bei mir so wie abgebildet. Aber ich frage das Mailkonto fast nie ab.
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeichenkette als Default einer Spalte

Beitrag von F3K Total » Sa 27. Dez 2014, 19:54

Wenn Du nun eine Version 2.X verwendest, hier ein Beispiel für den passenden Trigger:

Code: Alles auswählen

CREATE TRIGGER CONCAT_TWO_COLUMNS_IFNULL
    AFTER INSERT ON "Namen" 
    REFERENCING NEW ROW AS NEWROW 
    FOR EACH ROW BEGIN ATOMIC 
    IF NEWROW."zusammen" IS NULL THEN
        UPDATE "Namen" SET "zusammen" = NEWROW."Nachname" ||', '||NEWROW."Vorname" WHERE "ID" = NEWROW."ID";
    END IF;
END
Einmal über Extras/SQL ... ausführen.
R
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten