AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi select wird case sensitive behandelt?
Thema durchsuchen
Ansicht
Themen-Optionen

select wird case sensitive behandelt?

Ein Thema von defede · begonnen am 5. Mai 2011 · letzter Beitrag vom 5. Mai 2011
Antwort Antwort
Benutzerbild von defede
defede

Registriert seit: 10. Aug 2006
Ort: Stötten am Auerberg
72 Beiträge
 
Delphi 7 Professional
 
#1

select wird case sensitive behandelt?

  Alt 5. Mai 2011, 08:06
Datenbank: AS/400 • Version: V5R2M0 • Zugriff über: ADO
Hallo Community,
ein Problem an dem ich bereits verzweifle.

Kurzfassung:
Programm soll von BDE auf ADO umgestellt werden. Aufgrund der extremen grösse
wäre eine Anpassung aller Select/StoredProcs usw nur Wahnsinn.

Das Problem:
Was bei BDE selbstverständlich funktionierte war die Tatsache das ein select,
auf eine Spalte, die Gross und Kleinschreibung ignoriert. So sollte es doch bei
ADO doch auch sein? Oder?

Ein Beispiel:
SELECT WERT FROM FARBEN WHERE FARBE = 'Silber'
BDE liefert mir ein Ergebnis, ADO nicht.

Wenn ich aber nun die Werte anders vergleiche so zb:
SELECT WERT FROM FARBEN WHERE UPPER(FARBE) = 'SILBER'
Dann bekomme ich zwar meine Ergebnisse aber es ist einfach
zuviel Umbau erforderlich um diese Linie durchdas Programm zu drücken.

Hier mal der Connection String von ADO. Ich vermute/hoffe das es
eine Einstellung ist. Bislang aber noch nichts gefunden dazu.

Provider=IBMDA400.DataSource.1;
Password=<CODE>;
Persist Security Info=True;
User ID=<ID>;
Data Source=<SERVER>;
Initial Catalog=<DB>;
Force Translate=0;
Default Collection=<SCHEMA>;
Convert Date Time To Char=FALSE;
Catalog Library List=<SCHEMA>;
Add statements to SQL package=False;
Data Compression=True;
Hex Parser Option=0;
Library List=<SCHEMA>;
Naming Convention=0;
Keep Trailing Blanks=False

Hoffe irgendwer kann mir Helfen?
Invader Zim
Obey Zim
Fear Zim
  Mit Zitat antworten Zitat
PAB

Registriert seit: 30. Mai 2002
Ort: Bünde
10 Beiträge
 
#2

AW: select wird case sensitive behandelt?

  Alt 5. Mai 2011, 08:21
Hallo defede,

das wird mit der Collation zusammenhängen. Evtl. reicht es, den Parameter "Default Collation" auf eine case insensitive umzustellen. Andernfalls musst du das bei den einzelnen Textspalten anpassen.

Gruss Philipp
Philipp

Geändert von PAB ( 5. Mai 2011 um 11:59 Uhr) Grund: Verlesen...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#3

AW: select wird case sensitive behandelt?

  Alt 5. Mai 2011, 08:23
In MySQL bestimmt die COLLATION der Tabellen, bzw. der einzelnen Collumns, wie deren Werte verglichen werden.

z.B.: latin1_german1_ci vergleicht z.B. nach deutschem Schema (inkl. Umlaute) und ohne Beachtung der Groß-/Kleinschreibung,
wärend latin1_general_cs auf die Großkleinschreibung achtet.

[edit]
man, bin ich langsam :schlaf:
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: select wird case sensitive behandelt?

  Alt 5. Mai 2011, 08:25
Was bei BDE selbstverständlich funktionierte war die Tatsache das ein select,
auf eine Spalte, die Gross und Kleinschreibung ignoriert. So sollte es doch bei ADO doch auch sein? Oder?
Das ist eine Einstellung auf DB-Ebene/Tabellen bzw. Spaltenebene. Sollte die BDE das immer ignoriert haben so hat die BDE hier immer die Einstellungen entsprechend gesetzt. Kannst du mit einem Profiler schauen was die BDE-Anwendung so beim Verbindungsaufbau so zum Server schickt. Das müsstest du evtl. beim Verbindungsaufbau nachimplementieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von defede
defede

Registriert seit: 10. Aug 2006
Ort: Stötten am Auerberg
72 Beiträge
 
Delphi 7 Professional
 
#5

AW: select wird case sensitive behandelt?

  Alt 5. Mai 2011, 10:33
Hallo Leute,
erstmal danke für das Interesse.

Soweit ich das Festgestellt habe ist das bereits alles "Deutsch (A)"
Spalten sind mit CCSID 273 angelegt wurden. Klick mich: db.jpg

Ein übergeben des Parameters "Default Collation" (im ConnectionString)
ist leider in ADO wohl nicht vorgesehen. Zumindest find ich hier gar nichts dazu.

ConncetionString Parameter: 'Force Translate=273;' habe ich dazu auch mal umgestellt
jedoch ohne Erfolg. Laut IBM (Hilfe zu Parametern) sollte das so gehen,
habs auch mal mit 0 versucht - auch ohne Erfolg.

Was ich noch interessant finde, das iNavigator kommt per JDBC rein. Hat dort auch
eine eigene Config und Paramter (fast gleich zur BDE). Jedenfalls bringt mir der iNavigator ebenfalls das richtige Ergebnis.

Nur ADO fällt hier scheinbar ausm Rahmen?
Mit Profiler geht leider auch nicht.

Hat denn jemand noch eine Idee dazu?
Invader Zim
Obey Zim
Fear Zim
  Mit Zitat antworten Zitat
PAB

Registriert seit: 30. Mai 2002
Ort: Bünde
10 Beiträge
 
#6

AW: select wird case sensitive behandelt?

  Alt 5. Mai 2011, 11:58
Hallo defede,

"Default Collation" ist natürlich Unsinn, da hab ich mich in deiner Auflistung verlesen

Hast du schon mal den Parameter "Sort Sequence" = 2 (aus deinem Link zur IBM Parameterübersicht) ausprobiert (evtl. musst du dann "Sort Language ID" angeben)?

Gruss Philipp
Philipp

Geändert von PAB ( 5. Mai 2011 um 12:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von defede
defede

Registriert seit: 10. Aug 2006
Ort: Stötten am Auerberg
72 Beiträge
 
Delphi 7 Professional
 
#7

AW: select wird case sensitive behandelt?

  Alt 5. Mai 2011, 13:18
Hallo PAB,
also erstmal vielen vielen Dank für deine Hilfe!
Das Problem lag wirklich an "Sort Sequence" und "Sort Language ID" !
Nun funkt es so wie es sein soll

Vielen Dank nochmals you save my Day!
Invader Zim
Obey Zim
Fear Zim
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
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