Case sensitive bei SQL funktioniert (manchmal) nicht!

30/11/2011 - 13:07 von Stefan Koschke | Report spam
Hallo zusammen,

ich scheitere momentan am Verhalten des SQL-Servers 2008 bzw. am
Handling dessen Datenbanken durch Delphi:

Der SQL-Server ist CaseSensitive eingestellt, so daß

Select TCPIPadresse from ...
einen Fehler wirft, wenn das Feld in Wirklichkeit TCIPIAdresse heißt,
das ist auch in Ordnung.

Nun möchte ich Funktionen einbauen, mit denen ich (aus Fehlern der
Vergangenheit, in Access war das egal) falsch geschriebene Feldnamen
umbenennen kann.
Dafür möchte ich natürlich abfragen ob das falsch geschriebene Feld
existiert:

If Query.FindField('TCPIPadresse') <> Nil then...

und genau hier funktioniert CaseSensitive nicht mehr, auch wenn schon
das richtige TCPIPAdresse vorhanden ist, wird das Feld gefunden und das
nachfolgende Umbenennen geht in die Hose!

Hat jemand einen Tip wie ich das trotzdem lösen kann?

Danke
Ciao
Stefan
 

Lesen sie die antworten

#1 Christian Gudrian
30/11/2011 - 13:24 | Warnen spam
Am Mittwoch, 30. November 2011 13:07:33 UTC+1 schrieb Stefan Koschke:

und genau hier funktioniert CaseSensitive nicht mehr



Warum auch? Die Datenbank hat damit ja auch gar nichts zu tun. TQuery.FindField verwendet intern AnsiCompareText und ist somit case insensitive. Dir wird wohl kaum etwas anderes übrig bleiben, als selbst über die Liste der Feld zu iterieren, und dabei deine eigene Vergleichsfunktion zu verwenden, die Groß-/Kleinschreibung beachtet.

Christian

Ähnliche fragen