Autor Beitrag
landwehr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46

WIN XP, WIN 7, WIN 8
Delphi 6, Delphi 2007, Delphi XE2
BeitragVerfasst: Mo 09.04.12 17:08 
Hallo

habe folgendes Problem:

ich möchte mit folgen Scipt Daten in eine Tabelle schreiben:

Hier ein Auszug des Scipts:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
INSERT INTO TBL_LOOKUP (TYP,WERT) VALUES ('Beruf','Agrarbiologe/-biologin (Uni)');
INSERT INTO TBL_LOOKUP (TYP,WERT) VALUES ('Beruf','Agrarinformatiker/in');
INSERT INTO TBL_LOOKUP (TYP,WERT) VALUES ('Beruf','Agraringenieur/in (FS) - Landwirt. Pflanzenprodukt.');
INSERT INTO TBL_LOOKUP (TYP,WERT) VALUES ('Beruf','Agraringenieur/in (FS) - Landwirt. Tierproduktion');
INSERT INTO TBL_LOOKUP (TYP,WERT) VALUES ('Beruf','Agraringenieur/in (FS) - Landwirt. Versuchsw.(Pflanzenprod.)');

Alle Daten werden ohne Fehlermeldung in die Datenbank geschrieben.

Beim lesen des 3 Datensatzes kommt folgende Fehlermeldung:

Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.

In allen Insert Statment wo im Feld WERT Klammern beinhalten, kommt diese Meldung.

Datenbank Firebird 2.5.

Was mache ich falsch?

Wer hat einen Rat.

Walter

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 10.04.12 01:12 
Also in Zeile 1 stehen auch Klammern im String. Im String kann alles mögliche stehen, es darf den reibungslosen Ablauf eines Insertbefehls nicht beeinflussen.

user profile iconlandwehr hat folgendes geschrieben Zum zitierten Posting springen:

Beim lesen des 3 Datensatzes kommt folgende Fehlermeldung:
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.


String Truncation heißt, daß der SQL-Server beim Einfügen etliche Stellen vom String abschneidet: String Right Truncation weist darauf hin, daß sie rechts abgeschnitten werden, also nur der Anfang des Strings in der Spalte steht. Das wiederum weist darauf hin, daß die eingestellte Länge für den VARCHAR-Typ zu gering ist oder der CHAR-Typ gewählt wurde.

Moderiert von user profile iconMartok: Zitat repariert
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Di 10.04.12 05:50 
Guten Morgen,
wie werden die Daten ausgelesen? Über ein Select * oder eine StoredProcedure? stimmen die Charset-Einstellungen der Datenbank, IBExpert und der Spalten so weit überein?

Grüße
landwehr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46

WIN XP, WIN 7, WIN 8
Delphi 6, Delphi 2007, Delphi XE2
BeitragVerfasst: Mi 11.04.12 09:44 
Hallo,

ich habe es nicht geglaubt. Als ich heute morgen das Select Statement ausgeführt habe war der Fehler verschwunden. Nun ja dann ist das Thema erledigt.

Vielen Dank.

Walter
ProggyPeter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mi 11.04.12 11:46 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Prüfe mal Driver und Zeichensätze.
Ich glaube mich zu erinnern, dass ich bei der Umstellung auf Unicode aller VarChar Felder in der Kapazität verdoppelt habe.

Gruß Peter