Autor Beitrag
D. Annies
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 10.12.12 09:43 
Hi, Delpher,
wie kann ich eine Query erzeugen, die nach dem Familiennamen unabhängig von der Groß- Kleinschreibung sortiert?
Sodass also von Rittershausen vor Fuhrmann einsortiert wird?
Danke, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 10.12.12 09:55 
In Firebird könntest Du UPPER() verwenden:
ausblenden SQL-Anweisung
1:
select nachname from leute order by UPPER(nachname)					


Oder bei der Tabellendefinition COLLATE ändern. Da muss man aber wissen, was man tut.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Mo 10.12.12 10:15 
Entschuldige, aber "von Rittershausen" kann nie vor "Fuhrmann" einsortiert werden, dan "v/V" immer nach "f/F" kommt.

Und bei dem Order by xxx war bei meiner Datenbankanwendung keine Unterscheidung zwischen groß und klein zu sehen.

Ich habe auch mal die Komponenten durchgesehen. Da kann ich auch weder in der Felddefinition noch in der Tabellendefinition (TQuery) sehen, wie man case-sensitive Sortierung ein- oder ausschaltet.

Hast Du mal Order By Nachname probiert und nachgesehen, ob die Kleinbuchstaben dann wirklich nach den Großbuchstaben kommen? Wie gesagt, bei meiner Anwendung wird da keine Konversion wie Upper() durchgeführt und trotzdem klappt das.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 10.12.12 10:36 
Ob case-sensitiv oder nicht hängt wie bereits erwähnt von der Kollation ab. Und "von Rittershausen" kommt nur dann vor "Fuhrmann", wenn man absteigend sortiert ;). Ich bin gerade nicht sicher, aber UPPER gehört entweder zum aktuellen SQL-Standard oder wird zumindest von den meisten verbreiteten RDBMS unterstützt. Daher würde ich es so versuchen wie Nersgatt, das sollte eigentlich funktionieren. Falls nicht, wäre die Angabe des verwendeten RDBMS hilfreich.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 10.12.12 12:51 
Entschuldigung, das ist mein Versehen. Ich meinte natürlich, dass "von Rittershausen" vor "Weinheim" einsortiert wird.
Gruß, Detlef

Moderiert von user profile iconMartok: Beiträge zusammengefasst

P.S.
Upper() funzt leider nicht.

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 10.12.12 14:53 
Was heißt "funzt nicht"? Wird der Befehl nicht erkannt, oder stimmt nur die Sortierung weiterhin nicht? Welches DBMS?
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 10.12.12 15:21 
Funzt nicht, heißt, dass der Befehl zur Laufzeit von der BDE nicht erkannt wird.

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 10.12.12 15:38 
BDE? Von welcher Datenbank reden wir denn hier, Paradox? In dem Fall müsste ich mich auch erst belesen, das ist so lange her.
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.12.12 16:10 
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Und bei dem Order by xxx war bei meiner Datenbankanwendung keine Unterscheidung zwischen groß und klein zu sehen. Ich habe auch mal die Komponenten durchgesehen. Da kann ich auch weder in der Felddefinition noch in der Tabellendefinition (TQuery) sehen, wie man case-sensitive Sortierung ein- oder ausschaltet. Hast Du mal Order By Nachname probiert und nachgesehen, ob die Kleinbuchstaben dann wirklich nach den Großbuchstaben kommen? Wie gesagt, bei meiner Anwendung wird da keine Konversion wie Upper() durchgeführt und trotzdem klappt das.


Du kannst weder davon ausgehen, daß jeder dasselbe DBMS verwendet wie du noch daß jeder denselben Zeichensatz und dieselbe Sortierung (Collation) einsetzt. Daher wird je nach Zeichensatz eben nicht grundsätzlich nach deutschen Regeln sortiert, und ein Upper an der richtigen Stelle des Select-Strings kann sehr wohl dazu führen, daß nicht zwischen Groß- und Kleinschreibung unterschieden wird. Meine Erfahrungen erstrecken sich von MS-Access über MySQL, Firebird, Interbase bis MsSQL: in allen sind die Sortierungen unterschiedlich bei gleichem Zeichensatz.
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Mo 10.12.12 16:28 
Perlsau, ich gebe Dir Recht. Das ist bei jedeem Datenbanksystem anders. Aber warum eigentlich? Schließlich ist das ja sehr hinderlich, wenn man Daten mit verschiedenen Datenbanksystemen bearbeitet. Es wäre doch sinnvoll, gewisse Normungen oder Schalter zu haben, bei denen man dann die volle Kontrolle über seine Daten hat, und nicht herumrätseln muss, wie man diese so hinbekommt, dass sie dem gewünschten Ergebnis entsprechen. Aber da verlange ich wahrscheinlich zuviel des Guten.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 10.12.12 17:43 
In HTML gibt es ja auch klare Standards, trotzdem kocht jeder Browser-Hersteller sein eigenes Süppchen, damit müssen wir leider leben. Und da das bei SQL nicht anders ist, habe ich ja nun schon 3 mal gefragt, um welche Datenbank es sich eigentlich handelt.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 10.12.12 18:39 
@wasweißdennich:
danke für dein Interesse, es ist die BDE = Borland Database Engine, zwar alt,
aber in diesem Prg verwendet.
Gruß, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 10.12.12 18:44 
Die BDE ist keine Datenbank, sondern nur eine Art "Zugriffsframework" für den Zugriff auf verschiedene DBMS. Die DB dahinter kann dBase, Paradox, Oracle, MS SQL-Server oder was weiß ich sein. Und genau darum geht es mir. Ich habe übrigens mittlerweile recherchiert, auch Paradox kennt wohl UPPER.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 10.12.12 18:50 
Ach so, das wusste ich nicht. Es ist eine DBase4-DB dahinter.

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 10.12.12 18:59 
Ach Du liebes bisschen. dBase habe ich selbst nie benutzt, da mir das schon zu Delphi 2-Zeiten veraltet erschien. Wenn ich mich recht entsinne verstand das nativ noch nicht einmal SQL, da wundert mich die Fehlermeldung nicht. Handelt es sich um eine Kundendatenbank, oder könntest Du in Erwägung ziehen, auf ein zeitgemäßeres DBMS zu migrieren? Es gibt auch kostenfreie, die den kommerziellen nicht oder nur unwesentlich nachstehen.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 10.12.12 20:19 
Es handelt sich um Schule.

Migrieren: Ja, hast du einen Vorschlag?

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 10.12.12 21:03 
*Puh*, da gibt es einiges an Auswahl wie PostgreSQL, SQLite, Firebird, MariaDB oder SQLExpress (willkürliche Auswahl). Eine direkte Empfehlung möchte in an dieser Stelle nicht aussprechen, alle haben Vor- und Nachteile, schau sie Dir einfach mal an und entscheide selbst.
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 11.12.12 08:18 
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Entschuldige, aber "von Rittershausen" kann nie vor "Fuhrmann" einsortiert werden, dan "v/V" immer nach "f/F" kommt.


Aber nur, wenn deine Select-Anweisung nicht am Ende lautet ... order by Name desc, denn dann wird V tatsächlich vor F einsortiert ...


Zuletzt bearbeitet von Perlsau am Mi 12.12.12 09:09, insgesamt 1-mal bearbeitet
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 11.12.12 08:32 
user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Es handelt sich um Schule.


Das ist ja mal wieder typisch: veraltetes Lehrerwissen soll Schüler auf die moderne IT-Welt vorbereiten :lol:

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Migrieren: Ja, hast du einen Vorschlag?


MySQL ist sehr umfangreich, noch umfangreicher ist MsSQL. Am einfachsten finde ich persönlich Firebird, sehr übersichtliche Datenbank. Bei HKSoft gibt's ein sehr gutes Interbase/Firebird-Tool zum Erstellen und Verwalten von Datenbanken und Tabellen: IbExpert.

Meinen eigenen Einstieg in die Entwicklung von Datenbank-Anwendungen fand ich damals mit Hilfe von MsAccess, das es mir erleichterte, zu erkennen, wie eine Datenbank überhaupt funktioniert, wie SQL-Befehle aussehen usw.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Di 11.12.12 10:38 
@Perlsau:
Ich muss dich leider enttäuschen: Hier spielt nicht veraltetes Lehrerwissen die
entscheidende Rolle, sondern das "Wissen" der Schulverwaltung! Aber danke für den Smiley :)
Ich kann nur mit der beschriebenen Umgebung auf die Daten zugreifen, obwohl ich natürlich
nach Excel / Text / Word konvertieren kann usw.
LG, Detlef

_________________
ut vires desint, tamen est laudanda voluntas