Merkwürdiges Verhalten bei SQL-Request

Hoi,
erst mal bin ich neu beim Thema Base, aber ich habe schon ein paar Jährchen it SQL, Basic usw. zugebracht. (Windows 11, DEV 25.8.3.1 and 25.8)
Um ein paar Sachen zu testn, habe ich mir eine kleine Database (“Typ”) mit zwei Feldern Id (bigInt, auto) und wert (text) angelegt und ein paar Datein eingegeben.
Danach habe ich versucht die Tabelle via Basic zu erreichen. Hat, warum immer, nicht funktioniert.
Als nächstes und um das Problem zu finden, habe ich versucht mit direkt SQL der Sache näher zu kommen:

select * from “Typ” funktioniert wie erwartet
select “id” from “Typ” funktioniert wie erwartet
select “wert” from “Typ” funktioniert wie erwartet
select “wert” from “Typ” where “id” = 1 funktioniert wie erwartet
select “wert” from “Typ” where “wert” = “Airport” (this exist in the DB)
und ich bekomme
Column not found: Airport in statement [select “wert” from “Typ” where “wert” = “Airport”
(der angegebene Wert existiert)
Ich habe dann noch ein paar Varianten (mit/ohne " …) versucht, aber immer wenn ich die Spalte “wert” angebe erzählt mir das Teil das diese nicht existiert.
Was mache ich hier so grundlegend verkehrt? Vermutlich nur ein ganz simpler Anfängerfehler, aber im Moment komme ich einfach nicht drauf…

Database Definition:
grafik

Ich bin für jeden Tipp dankbar :slight_smile:
Georg

1 Like

Felder, Tabellen usw. werden mit einem " (doppelten Anführungszeichen) maskiert. Bei der MariaDB und anderen Datenbanken ist auch das Accent Grave üblich.

Wenn Du also etwas in doppelte Anführungszeichen setzt, dann erwartet die dahinter leigende Datenbank ein Tabellenfeld, keinen String als Inhalt. Strings werden in ' (einfache Anführungszeichen) gesetzt.

Wenn Du Dich mehr mit Base beschäftigen willst: Hier gibt es das deutschsprachige Base Handbuch (neben vielen anderen Dokumentationen). Du kannst auch auf meiner Homepage www.familiegrosskopf.de nach Tipps und Updates schauen.

ähem, I’m talking about the SQL-window within DB. With doublequotes you get an “unexpected token” error.

Robert: Die Doku schau ich mir sehr gerne an. Man lernt ja nie aus :slight_smile: Das mit den doppelten Anführungszeichen im Basic hab ich schon “geschnallt”, aber hier gehts erst mal um die SQL-Konsole.

Ja, Du meinst doch Extras → SQL, oder nicht?
Und darauf kommt ein

Column not found

weil "Airport" als Spaltenüberschrift verstanden wird.
.
…und Basic ist dann wieder ein anderes Paar Schuhe. Da musst Du das doppelte Anführungszeichen für die Makroausführung ja zusätzlich maskieren.

Ja genau. Nachdem es in Basic nicht funktioniert hat, mit korrekt formatierten Anführungszeichen, war meine Idee erst mal eine funktionierende Version zu finden und deshalb bin ich in das SQL-Fenster gegangen. Aber was ich hier auch mache, er scheint immer “Airport” nicht als Inhalt der Spalte zu verstehen. Auch nicht mit doppelten Anführungszeichen (das macht in meinen Augen an der Stelle auch nicht wirklich Sinn :slight_smile:

Die Frage hier war ja auch “Wie gehts denn nun richtig?”

Add: Ok, habs gefunden. RTFM hilft doch immer. Den gesuchten Wert nicht in " " sondern ’ ’ und schon klappts “mit dem Nachbarn” :nerd_face:

… und die Doppelung

"select ""wert"" from ""Typ"" where ""wert"" = 'Airport'"

brauchst Du erst dann, wenn Du nach BASIC wechselst. Dann wird aus dem so eingegebenen Text in BASIC dieser Code:

select "wert" from "Typ" where "wert" = 'Airport'

ja genau. Das funktioniert auch soweit jetzt ohne große Probleme :slight_smile:
Wie gesagt, RTFM hilft!
Allerdings taucht hier schon wieder ein neues “Problem” auf … :woozy_face:
Kann man dich eigentlich auch irgendwo (z.B. Discord) erreichen bevor das hier in eine
unendliche Fragestunde mündet. Sicherlich könnten auch andere davon profitieren, aber
dann müßten sie es erst mal finden…