AUGE_OHR hat geschrieben:Frage : sind "Table" und "Feld" Namen immer LOWER() ?
Nein!
Ich glaube, es gibt keinen SQL-Dialekt, bei dem nur kleingeschriebene Tabellen- und Feldnamen erlaubt sind.
Uli
Hallo,
es ist umgekehrt - da Feld- und Tabellennamen in mixed case möglich sind, und nicht jede SQL Implementierung beim String-Vergleich case insensitive vergleicht, geht man dazu über, die zu vergleichenden Elemente (den Feldnamen aus der Tabelle und das Feld, das man z.B. sucht) als Lower() zu vergleichen.
Hallo Georg,
so ganz verstehe ich Dich nicht. Erst widersprichst Du mir. Aber in Deine Begründungen bestätigen meine Meinung
Uli
P.S.
Ich setze gern Groß-/Kleinschreibung bei Feld- und Tabellennamen ein . Ich finde, dadurch wird der Code oft lesbarer. Das ist aber sicher nicht die vorherrschende (1 r oder 2 r?) Meinung
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Deine Aussage war ... "von hinten durch die Brust ins Auge" von der Formulierung.
Als Xbase (Clipper) Programmierer sind wir es gewohnt, dass Feldnamen IMMER GROSS GESCHRIEBEN sind. SQL-Server haben da so ihre Eigenheiten, und sie "verhalten" sich auch nicht alle auf die gleiche Art und Weise.
Ich verwende eine Dateiklasse, um den Zugriff auf Dateien durchzuführen. Da gibt es dann eine :FieldPos(cName) Methode, die - weil der Name ja eventuell kleingeschrieben sein könnte - ein AScan(::aFields, Upper(cName)) durchführt. Unter Xbase sind die Feldnamen immer gross.
Diese Logik kann ich nicht auf die Feldliste eines SQL-Servers übertragen, da entweder die Schreibweise bei der Tabellenerstellung, oder eine Anpassung des Servers, irgendeine Mischung aus Gross- und Kleinschreibung fabriziert haben kann. Ich muss also die Einträge in ::aFields alle mit AAdd(::aFields, Upper(cIrgendwas)) eintragen, damit ich mich beim Suchen einer Feldposition nicht "verhaue" (Datum <> DATUM). Ob man nun Upper() oder Lower() verwendet, liegt beim Programmierer (oder dem, der die Vorgaben macht).
Dazu kommt, dass das Problem nur "bei uns" (auf der Xbase++-Programmiererseite) liegt. Einem SELECT ist es egal, ob ich
SELECT * FROM table WHERE meinFeld = 'Hugo';
oder
SELECT * FROM table WHERE meinfeld = 'Hugo';
schreibe. Und da hatte Dein Statement etwas zu kurz gegriffen, zumindest aus meiner Sicht.
AUGE_OHR hat geschrieben:
ich "dachte" an folgenden Ablauf :
1.) Anzeige / Auswahl Server
2.) Anzeige Tabellen -> Auswahl Tabelle
3.) Anzeige "Felder" -> Auswahl "Felder" ( default alle )
4.) weiter Bedingungen auf "Felder" setzen ( pro "Feld" )
5.) Auswahl "Felder" für Browse ( default alle )
nun wird "intern" der "SELECT " String gebildet
6.) Browse