• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Groß/Kleinschreibung ignorieren

Hi! Ich habe Suse Linux 10 installiert und darauf einen MySQL Server laufen. Habe meine AccessDB darauf exportiert. Soweit lief alles glatt.

Wenn ich allerdings das Programm starten will, das auf die DB zugreift funktioniert gar nichts mehr, weil Tabellen und Felder nicht gefunden werden können. Sie sind im Quellcode nämlich willkürlich in Groß/Kleinschreibung geschrieben. Unter Windows war das bisher ja kein Problem.

Gibt es eine Möglichkeit, die Groß/Kleinschreibung zu ignorieren, denn sonst müßte ich tausende Zeilen Quellcode durchgehen und ändern.
 

whois

Ultimate Guru
Hi

Wie hast du die Migration gemacht?

Sieh dir bitte auch den Link an.

http://freshmeat.net/projects/mdbtools/
 
OP
D

DoctorCasino

Newbie
Hi!

Ich benutze MySQl Front und hab die AccessDB einfach importiert. Kam gerade noch nicht dazu, mich näher mit dem mdb-tools zu beschäftigen.
 

whois

Ultimate Guru
Hier ist noch ein Toolkit.

Mit kleinem Film. :wink:

http://www.mysql.de/products/tools/migration-toolkit/
 
OP
D

DoctorCasino

Newbie
Diese Toolkits sind ja alle schön und gut, aber weiterhelfen tun sie mir nicht. Die Migration hat ja ohne Probleme geklappt. Alle Tbellen und Felder sind da und ich die Datenbank auch administrieren.

Aber wenn ich mit meinem Programm darauf zugreifen will, findet er gewisse Tabellen und Felder nicht, weil sie anders geschrieben sind. Also wenn ich eine Tabelle hab, die "adressen" heißt, findet sie das Programm nicht, weil im Quellcode "Adressen" steht. Als die DB auf Windows lief, war das ja kein Problem, weil Windows Groß/Kleinschreibung egal ist. Ich habe niemals daran gedacht, daß ich auf so was achten müßte als ich damals den Quellcode schrieb.
 

huckfinn

Newbie
Unsere Arbeitsgruppe hatte ähnliche Probleme mit mysql.Man muß offensichtlich die Nutzung von Groß und Kleinschreibung für Datenbankschemas und Tabellennamen vermeiden. Wir haben ein Projekt Names ARIADNE das mit einem WINDOWS oder LINUX Backend basierend auf MySql arbeiten kann. Wir haben das LINUX-Backend ewig nicht zum laufen bekommen. Der Grund war, daß MySql die Tabellen als Dateien und Die Schemas alsVerzeichnisse direkt auf das Filesystem abbildet. Das Linuxfilesystem ist aber casesensitive der SQL Standard eigentlich nicht! Die Leute von MySQLverkaufen das als "Erweiterung eines Standards" ..was immer das heißen mag. Man kann die Malaise hier nachlesen.

http://dev.mysql.com/doc/refman/5.0/en/name-case-sensitivity.html

Unsere Arbeitsgruppe hat die gesamte Applikation auf einheitlich kleine Feld, Tabellen und Schemabezeichner umgeschreiben. ..nicht schön aber selten

Unter besagtem Link kann auch nachlesen wie man entweder mit einheitlich großen oder einheitlich kleinen Bezeichnern arbeitet. Mehr ist leider nicht möglich oder ich habe es übersehen. Neben diesen "Standardisierungen" gab es auch noch weiter Kompatibilitätsprobleme, so daß ich MySQL verworfen habe und nun mit postgesql arbeite.

ok ich hoffe das hilft bis denne huck
 

panamajo

Guru
DoctorCasino schrieb:
Wenn ich allerdings das Programm starten will, das auf die DB zugreift funktioniert gar nichts mehr, weil Tabellen und Felder nicht gefunden werden können. Sie sind im Quellcode nämlich willkürlich in Groß/Kleinschreibung geschrieben. Unter Windows war das bisher ja kein Problem.

Bekanntes Problem.
Bei Verwendung von MyISAM (oder ISAM) fällt die Auflösung von Tabellennamen auf das Dateisystem zurück, und da glänzen M$ Dateisysteme mit "ist mir egal".

Soll heissen: M$ Dateisysteme (wie vfat oder NTFS) können sehr wohl zwischen Groß/Kleinschreibung unterscheiden, aber das OS tut dies nicht. Beim Versuch eine Datei namens "Foo" oder "foo" via fopen() wird die Groß/Kleinschreibung ignoriert, es gewinnt die erste Datei im Directory - egal ob "Foo" gefragt wurde und existiert (ein tolles Beispiel was für bescheuerte Nebenwirkungen auftauchen wenn ein OS mit dem Paradigma "User friendly at all costs" designed wird).

Um MySQL portabel zu halten wurde für die M$ Implementierungen festgelegt dass
- Datenbanken
- Tabellennamen
von mysqldump immer lowercased exportiert werden (und damit auch die empfohlene Schreibweise sind). Feldnamen werden von MySQL selbst verwaltet und somit wird Groß/Klein unterschieden.
 
Oben