Hallo!I
Ich möchte über LibreOffice Basic (Version 7.0.4.2 auf Debian 11 Bullseye) programmgesteuert mit INSERT INTO Datensätze anhängen. Dabei stellt sich das Problem, dass beim SQL-Befehl nur das erste Feld (Index-Schlüsselfeld) richtig erkannt wird. Bei weiteren Feldern kommt die Fehlermeldung "Column not found: XY", wobei mit XY der Wert angeführt wird, den ich eigentlich einsetzen will.
Konkrete Beispiele: Ich habe in der Tabelle "Werke" u.a. das Schlüsselfeld "WerkNr" und das Textfeld "Komp". INSERT INTO mit beiden Feldern und 2 Werten macht die Meldung, dass das Feld "Mozart" (also der 2. Wert) nicht erkannt wird. Mit dem Feld WerkNr allein wird ein entsprechender Datensatz angehängt.
Der Versuch, das Problem zu umgehen, indem ich zuerst den Datensatz nur mit dem Indexfeld anhänge und dann mit UPDATE die weiteren Werte einsetze, scheitert. Dann kommt jedes Mal die Fehlermeldung "Column not found", diesmal mit dem Schlüsselfeld genauso wie mit dem Textfeld. Und der Fehler kommt im Basic-Code ebenso wie in der direkten SQL-Anweisung über das Menü Extras > SQL. Der Einfachkeit halber schicke ich Screenshots von der Direkteingabe mit.
Die Frage ist, übersehe ich hier einen Fehler bei der Eingabe oder ist die Interpretation fehlerhaft?
Grüße, teuff
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] SQL-Befehl: Column wird nicht richtig zugeordnet
[gelöst] SQL-Befehl: Column wird nicht richtig zugeordnet
- Dateianhänge
-
- Insert1.png (32.66 KiB) 531 mal betrachtet
-
- Insert2.png (30.58 KiB) 531 mal betrachtet
-
- Update1.png (31.99 KiB) 531 mal betrachtet
-
- Update2.png (32.16 KiB) 531 mal betrachtet
Zuletzt geändert von teuff am Mo 27. Mär 2023, 17:46, insgesamt 1-mal geändert.
Re: SQL-Befehl: Column wird nicht richtig zugeordnet
Feldnamen und Tabellennamen musst Du in der Regel maskieren. In Base für die internen Datenbanken funktioniert das mit dem doppelten Anführungszeichen. Das bedeutet gleichzeitig: Alles, was Du in doppelte Anführungszeichen setzt, wird als Feldname gedeutet. "Mozart" ist in SQL also die Bezeichnung für ein Feld, nicht für den Inhalt.
Setzte Inhalte in einfache Anführungszeichen. Bei Zahlen kannst Du das auch weglassen. Denke bei Dezimalzahlen daran, dass die mit einem Dezimalpunkt versehen müssen, denn ein Komma trennt Inhalte in SQL.
Also
Setzte Inhalte in einfache Anführungszeichen. Bei Zahlen kannst Du das auch weglassen. Denke bei Dezimalzahlen daran, dass die mit einem Dezimalpunkt versehen müssen, denn ein Komma trennt Inhalte in SQL.
Also
Code: Alles auswählen
INSERT INTO "Werke" ("WerkNr", "Komp") VALUES (2045, 'Mozart')
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: SQL-Befehl: Column wird nicht richtig zugeordnet
Danke, das hat mein Problem gelöst.RobertG hat geschrieben: ↑Mo 27. Mär 2023, 08:29Feldnamen und Tabellennamen musst Du in der Regel maskieren. In Base für die internen Datenbanken funktioniert das mit dem doppelten Anführungszeichen. Das bedeutet gleichzeitig: Alles, was Du in doppelte Anführungszeichen setzt, wird als Feldname gedeutet. "Mozart" ist in SQL also die Bezeichnung für ein Feld, nicht für den Inhalt.
Setzte Inhalte in einfache Anführungszeichen. Bei Zahlen kannst Du das auch weglassen. Denke bei Dezimalzahlen daran, dass die mit einem Dezimalpunkt versehen müssen, denn ein Komma trennt Inhalte in SQL.
AlsoCode: Alles auswählen
INSERT INTO "Werke" ("WerkNr", "Komp") VALUES (2045, 'Mozart')
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️