Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: SELECT * FROM … WHERE LIKE '%SONDERZEICHEN%'

  Alt 16. Nov 2007, 22:42
Zitat von PaulJr:
Ich habe hier ein einfaches SQL-Befehl präsentiert die mit irgendwelchen KOMPONENTEN
nichts zu tun hat:
Und woher weist du das? Wir haben eine große Anwendung die genau diese aufgeführte DBs unterstützt und wir können (per Unit-Tests abgesichert) x-Beliebige Unicode-Zeichen abfragen. Werde mal Montags gleich den ³-Fall als Sonderfall aufnehmen. Und jede Datenbank hat Eigenheiten bei solchen speziellen Dingen. Du kannst eine Oracle-Datenbank-Installation haben die nicht mal Sonderzeichen wie üöä speichern kann (u.U. "³" doch da es in der verwendeten Codepage der DB vorhanden ist).

Dein Problem wird einfach sein das die Datenbank über den Weg ODBC und bei Nicht-Verwendung von Parameter einfach eine "³" im Query-String so wie du ihn angegeben hast bei einer Like-Abfrage einfach gleichwertig wie eine "richtige" "3" betrachtet und dir alle Records mit "3" im Feld zurückliefert egal ob nun die "3" hoch oder tiefgestellt ist. Die Regeln die eine Datenbank bei solchen Entscheidungen verwendet sind abhängig von den in der Datenbank (bei manchen Datenbanken kann auch auf Tabellen oder Feldebene gesonderte Angaben vorgenommen werden) verwendeten Collations und Codepages sowie der verwendeten. Evtl. solltest du dir mal die Dokumentation von MySQL zu diesem Thema durchlesen. Und wenn du nur den generischen Weg über ODBC verwendest fehlen dir u.U. geeignete "Schalter" um das gewünschte Verhalten bei der verwendeten Datenbank abzufragen.

Hab gerade noch was für MS SQL zusammengegoogelt:
SQL Server and collation
Internationale Features in Microsoft SQL Server 2000

Leider habe ich in deinem ersten Beitrag überlesen das du für genau das ³-Problem nur beim MS SQL-Server probleme hast. Aber wenn du weiter in die Materie Datenbanken einsteigst wirst du früher oder später auch bei MySQL (später) und Oracle (früher) auf "komisches" Verhalten stoßen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat