Discussion:
UPDATE bei Firebird geht auf die Bretter
(zu alt für eine Antwort)
Ulli Vieweg
2011-03-09 23:36:36 UTC
Permalink
Hallo zusammen,
ich habe da ein Problem, wo ich noch nicht mal näherungsweise eine Idee
habe...

Es geht um ein simples UPDATE-Statement, wo 2 Felder upgedatet werden sollen
mit dem Kriterium eines weiteren Feldes:

UPDATE TABLE
SET FELD1= '10', FELD2 = 'Langer Text mit 100 Zeichen'
WHERE FELD3 = 'XXX_20110302_01';

Wenn das Feld 3 einen Wert von: 'XXX_20110302_1' hat, funktioniert alles.
Wenn es jedoch den Wert 'XXX_20110302_01' hat - peng. Was bitte macht die
zusätzliche Null aus? Zulässige Feldlänge ist varchar 20.
Die geschmissene Exeption lautet: Arithmetic overflow or division by zero
has occurred.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.

OK...Führende Nullen stören meistens ;-) Aber diese hier ist die vorletzte
in einem String. Was ist faul?

DB=Interbase 2.5
Delphi=6

ciao
ulli
Michael Dombrowski
2011-03-10 10:06:17 UTC
Permalink
Post by Ulli Vieweg
UPDATE TABLE
SET FELD1= '10', FELD2 = 'Langer Text mit 100 Zeichen'
WHERE FELD3 = 'XXX_20110302_01';
Wenn das Feld 3 einen Wert von: 'XXX_20110302_1' hat, funktioniert alles.
Wenn es jedoch den Wert 'XXX_20110302_01' hat - peng. Was bitte macht die
zusätzliche Null aus? Zulässige Feldlänge ist varchar 20.
Die geschmissene Exeption lautet: Arithmetic overflow or division by zero
has occurred.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.
Die Fehlermeldung deutet eher darauf hin, daß Du versuchst, zu lange
Zeichenketten in FELD1 und/oder FELD2 zu schreiben.

Gruß,
Michael
Ulli Vieweg
2011-03-11 16:47:32 UTC
Permalink
Hallo Michael,
Schande über mich....alles im Prog von 80 auf 100 geändert und tatsächlich
vergessen, das in der DB auch zu tun.
Manchmal steht man echt auf der Leitung. Danke fürs runterlupfen!
Grüße
ulli
Post by Michael Dombrowski
Die Fehlermeldung deutet eher darauf hin, daß Du versuchst, zu lange
Zeichenketten in FELD1 und/oder FELD2 zu schreiben.
Gruß,
Michael
Nicole Wagner
2011-03-11 15:42:15 UTC
Permalink
Post by Ulli Vieweg
Hallo zusammen,
ich habe da ein Problem, wo ich noch nicht mal näherungsweise eine
Idee habe...
Es geht um ein simples UPDATE-Statement, wo 2 Felder upgedatet werden
UPDATE TABLE
SET FELD1= '10', FELD2 = 'Langer Text mit 100 Zeichen'
WHERE FELD3 = 'XXX_20110302_01';
Wenn das Feld 3 einen Wert von: 'XXX_20110302_1' hat, funktioniert
alles. Wenn es jedoch den Wert 'XXX_20110302_01' hat - peng. Was
bitte macht die zusätzliche Null aus? Zulässige Feldlänge ist varchar
20. Die geschmissene Exeption lautet: Arithmetic overflow or
division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.
OK...Führende Nullen stören meistens ;-) Aber diese hier ist die
vorletzte in einem String. Was ist faul?
DB=Interbase 2.5
Delphi=6
ciao
ulli
Hallo Ulli,

ich denke nicht, dass es an der Null liegt.
Du hast ein Character als Feldtyp, aber liest eine mathematische
Fehlermeldung.

Ich wuerde mir eine neue drei Felder Tabelle anlegen und dort einmal
Deine Abfrage ausprobieren. Ich denke fast, dass Du dort den Fehler
nicht sehen wirst. Dann tastest Du Dich langsam ran und spendierst der
jungen Tabelle Eigenschaft um Eigenschaft, bis Du den Fehler hast.

Ist eines der Felder vielleicht ein Fremschluessel und ein "mehr" als
ein nur-Datensatz?


Nicole
Loading...