Mailinglisten-Archive |
> Wenn ich in einer Tabellendefinition ein CHAR(20) definiere, > so erhoffe ich doch , daß dieser bei einer Länge von 20 beleibt. > Wenn ich jedoch die Tabelle in einer ODBC Quelle öffne, wird > die Länge des Chars automatisch an den längsten bisherigen Wert > angepaßt und kann später nicht mehr geändert werden. > > Ein Beispiel : > > create table addressen (Kunden_nr INT(6),Anrede CHAR(6),Vorname > CHAR(20),Nachname CHAR(30)); > insert into addressen(1,"Herr","Peter","Kunz"); > > Wenn ich jetzt auf die Tabellendefinition meines Datenbank-Fronted > sehe > erhalte ich wider Erwarten folgende Werte : > Kunden_nr INT(1),Anrede CHAR(4),Vorname CHAR(5),Nachname CHAR(4) > > Der Versuch einen Herrn Müller anzulegen scheitert also, da Müller aus > 6 Zeichen besteht. Der Versuch scheitert von deinem DB-Frontend aus ? > Das gleiche gilt für die anderen Werte.Wie kann ich dieses Problem > umgehen, denn es macht mir > ein sinnvolles Arbeiten unmöglich? Ich habe zwar im Handbuch etwas zur > Verkürzung von Werten > gelesen , werde daraus aber nicht schlau. > Ach ja, innerhalb von mysql (also ohne odbc) kann ich natürlich > weiterhin die vollen 30 Zeichen nutzen. Du meinst VARCHAR-Felder. Dort wird die maximale Länge der Felder angegeben, aber nur die wirklich benötigte Länge verwendet. Dies spart u.U. sehr viel Speicherplatz. Welchen ODBC-Treiber verwendest du genau und welche Optionen sind gesetzt ? Kannst du einen ODBC-Trace ziehen ? Dirk
php::bar PHP Wiki - Listenarchive