Entwickler-Ecke

Datenbanken - SQL Insert Statment


landwehr - Mo 09.04.12 17:08
Titel: SQL Insert Statment
Hallo

habe folgendes Problem:

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

Hier ein Auszug des Scipts:

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


Delete - 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 - 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 - 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 - 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