![]() |
Datenbank: Paradox • Zugriff über: BDE
SQL und Bindestrich im Feldnamen
Hallo!
ich habe einen Bindestrich im Feldnamen und kann keine Möglichkeit finden, ihn im SQL-Statement zu verwenden: SELECT * FROM tbl.db WHERE Bt-Id=17 So geht es eben nicht, auch mit ", ', [] usw. habe ich keinen Erfolg. Weiß jemand einen Weg? |
Re: SQL und Bindestrich im Feldnamen
Hallo Schiller,
mich wundert dass du die Tabelle so ueberhaupt erstellen konntest :shock: AFAIK ist das Minus im Feldnamen eigentlich ungueltig, da es ja ein Rechenoperator ist ;) Greetz alcaeus |
Re: SQL und Bindestrich im Feldnamen
Heißt das, dass es keine Lösung gibt? :(
In Delphi ist diese Benennung gar kein Problem... |
Re: SQL und Bindestrich im Feldnamen
hast du mal backticks probiert?
Code:
`column`
|
Re: SQL und Bindestrich im Feldnamen
Anführungszeichen um den Namen, dann sollte es klappen.
Grüße Mikhal |
Re: SQL und Bindestrich im Feldnamen
Hai,
auch wenn es mit Anführungszeichen oder ähnlichem funktionieren sollte würde ich mich doch lieber an die Namensregeln halten. Dann hast Du einfach weniger Probleme ;-) Tabellennamen dürfen aus Buchstaben, Ziffern (nicht am Anfang) und der Zeichenmenge = {@, #, _ , $} bestehen. |
Re: SQL und Bindestrich im Feldnamen
Vielen Dank für die Tipps, :)
aber leider alle (alle Arten von Anführungszeichen, Klammern und Backticks) ohne Erfolg! :cry: 1000 Programme mit dem Feldnamen "BT-ID" sind schon draußen im Feld... ohne Konvertierung aller Datenbanken geht es wohl nicht!!! :wall: |
Re: SQL und Bindestrich im Feldnamen
Nicht die Hoffnung aufgeben!
SQL-Code:
Grüße vom marabu
SELECT * FROM tbl.db magic WHERE magic."Bt-Id" = 17
|
Re: SQL und Bindestrich im Feldnamen
Danke.
Jetzt ist immerhin die Fehlermeldung aussagekräftig: Feldname ungültig. (Vorher hat der Interpreter ja immer Bt als eigenes Feld erkannt.) Ergebnis leider dasselbe. |
Re: SQL und Bindestrich im Feldnamen
Was machst du, um diese Fehlermeldung zu bekommen? Zeig bitte mal das Statement.
marabu |
Re: SQL und Bindestrich im Feldnamen
Das letzte Statement heißt: SELECT * FROM flaechen.db magic WHERE magic."BT-ID"=17
Antwort: ungültiger Feldname: BT-ID Andere Statements wie SELECT * FROM flaechen.db WHERE "BT-ID"=17 oder SELECT * FROM flaechen.db WHERE 'BT-ID'=17 oder SELECT * FROM flaechen.db WHERE `BT-ID`=17 bringen Antworten wie Keine Übereinstimmung der Typen im Ausdruck |
Re: SQL und Bindestrich im Feldnamen
Die Syntax, die ich dir vorgestellt habe, ist korrekt und funktioniert bei mir. Die anderen Schreibweisen können nicht funktionieren. Durch das Minus-Zeichen muss der Bezeichner in Quotes verpackt werden. Werden Quotes verwendet, dann muss ein qualifizierter Name verwendet werden. So sind die Regeln.
Ich habe mit IDAPI32.DLL Version 5.2.0.2 getestet. Was verwendest du? marabu |
Re: SQL und Bindestrich im Feldnamen
Ich verwende dieselbe Version.
Was ist ein qualifizierter Name? |
Re: SQL und Bindestrich im Feldnamen
"tableName"."fieldName"
Wenn du nur den Feldnamen in Quotes packst, dann wird dir ein Literal ausgegeben. marabu |
Re: SQL und Bindestrich im Feldnamen
Zitat:
marabu |
Re: SQL und Bindestrich im Feldnamen
Danke. Jetzt hat sich das Problem gelöst :lol:
Der entscheidende Tipp war der qualifizierte Name. Ich habe nur leider im laufe der Untersuchungen den Feldnamen falsch geschrieben :oops: sodass ich zunächst eine "falsche" Fehlermeldung bekam. Danke nochmal :love: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz