BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> 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

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
teuff
! Supporter - Spende !
Beiträge: 11
Registriert: Di 26. Mär 2013, 20:13

[gelöst] SQL-Befehl: Column wird nicht richtig zugeordnet

Beitrag von teuff » So 26. Mär 2023, 22:17

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
Dateianhänge
Insert1.png
Insert1.png (32.66 KiB) 530 mal betrachtet
Insert2.png
Insert2.png (30.58 KiB) 530 mal betrachtet
Update1.png
Update1.png (31.99 KiB) 530 mal betrachtet
Update2.png
Update2.png (32.16 KiB) 530 mal betrachtet
Zuletzt geändert von teuff am Mo 27. Mär 2023, 17:46, insgesamt 1-mal geändert.

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: SQL-Befehl: Column wird nicht richtig zugeordnet

Beitrag von RobertG » Mo 27. Mär 2023, 08:29

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

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

teuff
! Supporter - Spende !
Beiträge: 11
Registriert: Di 26. Mär 2013, 20:13

Re: SQL-Befehl: Column wird nicht richtig zugeordnet

Beitrag von teuff » Mo 27. Mär 2023, 17:49

RobertG hat geschrieben:
Mo 27. Mär 2023, 08:29
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

Code: Alles auswählen

INSERT INTO "Werke" ("WerkNr", "Komp") VALUES (2045, 'Mozart')
Danke, das hat mein Problem gelöst.

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 ❤️

Antworten