Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Where als Spaltenname (https://www.delphipraxis.net/32909-where-als-spaltenname.html)

der-C 29. Okt 2004 13:27


Where als Spaltenname
 
hallo

ich greife mit den Zeos komponenten auf eine access-Datenbank zu
darin ist eine Tabelle mit einer Spalte mit dem Spaltenname "Where" (also ohne die "")

nun, bei jeder select abfrage oder Alter Table nörgelt er rum.
wie mach ichs?

es kommen immer solche abfragen zustande:
z.B. SELECT Where FROM Tabellenname WHERE Where="5"

mit " oder ' hab ichs schon probiert er legt dann immer eine Spalte mit Namen: "Where" oder 'Where' an

:?: :?: :?:

Sharky 29. Okt 2004 13:29

Re: Where als Spaltenname
 
Hai der-c

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Die einfachste Lösung: Verwende nie reservierte Bezeichner der Datenbank als Spaltennamen!

Aenogym 29. Okt 2004 13:32

Re: Where als Spaltenname
 
hi,

war das nicht bei SQL so, dass man spaltennamen usw. in ` setzt?

SQL-Code:
select * from `tab` where `where` = 'da'
so in etwa.

Aenogym

der-C 29. Okt 2004 13:34

Re: Where als Spaltenname
 
wow, sogar mit Begrüßung, danke

so weiter,
es liegt aber nicht in meiner hand welche namen der benutzter meines programmes verwendet
oder soll ich alle SQL-Tags verbieten, das sind ja recht viele oder?

@ Aenogym
hmm, das hab ich noch nicht getstet werds mal versuchen...

Sharky 29. Okt 2004 13:36

Re: Where als Spaltenname
 
Zitat:

Zitat von der-C
wow, sogar mit Begrüßung, danke

Wir sind halt ein freundliches Form :stupid:

Zitat:

es liegt aber nicht in meiner hand welche namen der benutzter meines programmes verwendet
oder soll ich alle SQL-Tags verbieten, das sind ja recht viele oder?
Es ist zu überlegen ob dies nicht die bessere Wahl ist. Selbst wenn Du eine Lösung mit " oder ' oder [] findest ;-)
Weisst Du nicht was nach dem nächsten Treiberupdate passiert.

der-C 29. Okt 2004 13:43

Re: Where als Spaltenname
 
Das is nen Argument.
Na da werde ich wohl in den sauren Apfel (oder Tastatur) beissen müssen.

Danke :dp:

himitsu 29. Okt 2004 14:03

Re: Where als Spaltenname
 
Wenn die Tabelle nur von deinem Programm erstellt/verwendet wird und du somit auf die Spaltennamen Einfluß nehmen kannst, könntest du ja auch einfach ein Prefix vor die Spaltennamen setzen, damit ist dann der Name relativ egal. (nur Leer- und Sonderzeichen machen dann noch Probleme)

Code:
SELECT Tab_Where FROM Tabellenname WHERE Col_Where="5"
Für die Leerzeichen gibt es allerding die bekannte Lösung ^^
Code:
SELECT [b][color=red]`[/color][/b]Tab_Where[b][color=red]`[/color][/b] FROM Tabellenname WHERE [b][color=red]`[/color][/b]Col_Where[b][color=red]`[/color][/b]="5"

dizzy 29. Okt 2004 14:12

Re: Where als Spaltenname
 
Ich musste mal, weil ich SQL in eine recht große DB-Anwendung einführen wollte, die gesamte DB, und tausende Zeilen langen Code anpassen, da ein Feld "TIME" hieß :roll:. Vorher wurde halt nicht mit SQL gearbeitet, sondern mit Filtern und .FieldByName... das war ziemlich ekelig, und den Hauptentwickler des Programms hab ich dann erst mal zurecht gestutzt :mrgreen:. Man spart sich Ärger wenn man von vorne herein SQL-Tokens ausschließt/ausschließen lässt.

Gruss,
Fabian

der-C 29. Okt 2004 14:16

Re: Where als Spaltenname
 
@ himitsu
das ist mir auch so eingefallen ABER,
mein programm ist fast fertig und es währe recht aufwendig diese sache einzufügen,
wenns mir früher eingefallen wär hätt ichs so gemacht

dizzy 29. Okt 2004 14:27

Re: Where als Spaltenname
 
Zitat:

Zitat von der-C
wenns mir früher eingefallen wär hätt ichs so gemacht

Hätt der Hund nich geschissen, hätter nen Hasen gefangen... ;)

Im Ernst: Die einzige saubere Lösung ist es das anzupassen. Dann musst du eben ein Mal in den sauren Apfel beissen, vergisst das aber dann nie mehr. Und ich spreche, wie gesagt, aus ganz eigener Erfahrung. :)


\\edit: Falsches Zitat genommen :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz