AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsamer
Thema durchsuchen
Ansicht
Themen-Optionen

[erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsamer

Ein Thema von Jürgen Thomas · begonnen am 15. Okt 2009 · letzter Beitrag vom 17. Okt 2009
Antwort Antwort
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#1

[erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsamer

  Alt 15. Okt 2009, 15:21
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert Personal
Hallo,

ich habe in einer Tabelle ein Feld VARCHAR(10), dessen Inhalte tatsächlich immer genau 4 Zeichen lang sind mit UTF8. Deshalb wollte ich die Tabelle jetzt anpassen:
SQL-Code:
ALTER TABLE Abteilungen
  ALTER COLUMN Kurzbezeichnung TYPE CHAR(4);
Dabei bekomme ich aber eine in diesem Zusammenhang seltsame Fehlermeldung:
Zitat:
This operation is not defined for system tables.
unsuccessful metadata update.
New size specified for column KURZBEZEICHNUNG must be at least 40 characters.
Ich kann verstehen, dass eine solche Änderung nicht ohne Weiteres ausgeführt werden kann, weil so viele Nebenbedingungen verletzt sein können; beispielsweise ist die Spalte bisher über eine Domain definiert worden (aber auch wenn ich als neuen Typ eine passende Domain auswähle, gibt es dieselbe Fehlermeldung). Aber wieso wird eine Länge von mindestens 40 Zeichen verlangt?

Kann mir jemand helfen? Danke! Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: ALTER COLUMN ... TYPE klappt nicht mit seltsamer Meldung

  Alt 15. Okt 2009, 15:26
Evtl. hat hier Firebird ähliche Einschränkungen wie Oracle so das verkleinern nur über eine Hilfspalte möglich ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#3

Re: ALTER COLUMN ... TYPE klappt nicht mit seltsamer Meldung

  Alt 15. Okt 2009, 15:54
Es scheint sich tatsächlich nur um eine irreführende Fehlermeldung zu handeln. Ein Versuch, auf CHAR(20) zu ändern, klappt nämlich.

Na gut, dann muss es eben über eine Hilfsspalte gehen. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa

  Alt 16. Okt 2009, 08:15
Hallo,

viell. hilft das hier weiter.

Firebird / UTF8

Ein UTF8 Zeichen könnte 4 Byte verbraten, FB berücksichtigt das.
Warum nicht 20 statt 16 (4*4) angezeigt wird -> ?


Heiko
Heiko
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa

  Alt 16. Okt 2009, 08:54
Hallo,

ich sagte ja von Anfang an: Mir ist klar, dass es nicht unbedingt ausgeführt wird. Eine Fehlermeldung wie "mindestens 16 Zeichen" hätte ich sofort verstanden, aber 40?

Wer weiß, woher die Fehlermeldung kommt. IBExpert sorgt dafür, dass der eine ALTER-Befehl sich um alles kümmert (daher auch der Verweis auf die Systemtabellen). Vielleicht werden aus dem einen ALTER-Befehl etwa 5 Zwischenbefehle, einer davon liefert eine missverständliche Fehlermeldung, die anderen setzen das in die endgültig irreführende Meldung um.

Aber ich glaube, das brauchen wir wirklich nicht zu vertiefen (auch HK nicht). Ich nehme eben hin, dass der Umweg über die temp. Spalte nötig ist. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa

  Alt 17. Okt 2009, 09:12
Hallo,

du hast 10 Zeichen. Ein Unicode belegt im schmlimmsten Fall 4 Byte
(siehe mein Link).
10*4 = 40 ...

So habe ich den Link zumindestens verstanden.


Heiko
Heiko
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#7

Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa

  Alt 17. Okt 2009, 09:26
Hallo Heiko,

ahhh, dieser Hinweis macht jedenfalls die Meldung verständlich. Das Feld war bisher mit der maximalen Länge von 10 Zeichen definiert; die Inhalte hatten tatsächlich genau 4 Zeichen. Das ist der Unterschied zwischen Theorie und Praxis: Das DBMS kümmert sich um die Theorie (10x4), der Anwender um die Praxis (4x4).

Aber wie gesagt: Umweg benutzen, Thema erledigt. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  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 16:14 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