Announcement

Collapse
No announcement yet.

Umlaute verursachen Probleme

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Umlaute verursachen Probleme

    Hallo,

    ich bin Anfänger was Interbase betrifft. Jetzt habe ich das Problem, dass folgende Fehlermeldung beim Abspeichern von Daten mit Umlauten auftritt:

    arithmetic exception, numeric overflow, or string trunction
    Cannot transliterate character between character sets.

    Laut meinem Buch "InterBase Datenbankentwicklung mit Delphi" müßte ich aber alles richtig machen. Wer kann mir helfen.

    Hier noch die Metadaten der DB:

    SET SQL DIALECT 3;

    /* CREATE DATABASE 'D:\IBG.gdb' PAGE_SIZE 4096

    DEFAULT CHARACTER SET WIN1252 */
    /* Domain definitions */
    CREATE DOMAIN BETRAEGE AS NUMERIC(6, 2);
    CREATE DOMAIN BOOL AS CHAR(1) CHARACTER SET WIN1252
    check (value in ('J','N')) NOT NULL;
    CREATE DOMAIN DAT AS DATE;
    CREATE DOMAIN HHSTNR AS CHAR(11) CHARACTER SET WIN1252;
    CREATE DOMAIN LFDNR AS INTEGER;
    CREATE DOMAIN STRING AS CHAR(50) CHARACTER SET WIN1252;
    CREATE DOMAIN VSTRING AS VARCHAR(50) CHARACTER SET WIN1252;

    /* Table: THHST, Owner: SYSDBA */

    CREATE TABLE "THHST"
    (
    "HHST" "HHSTNR" NOT NULL,
    "BEZEICHNUNG" "VSTRING",
    "LFD" "LFDNR",
    PRIMARY KEY ("HHST")
    );

    /* Table: TMAIN, Owner: SYSDBA */

    CREATE TABLE "TMAIN"
    (
    "SID" "VSTRING" NOT NULL,
    "HHST" "HHSTNR",
    "LFD" "LFDNR",
    "NAME" "STRING",
    "VERWENDUNG" "STRING",
    "BEMERKUNG" "STRING",
    "BETRAG" "BETRAEGE",
    "DATUM" "DAT",
    "USERNAME" "VSTRING",
    "STORNO" "BOOL",
    "QERSTELLT" "BOOL",
    PRIMARY KEY ("SID")
    );

    /* Table: TUSER, Owner: SYSDBA */

    CREATE TABLE "TUSER"
    (
    "USERNAME" "VSTRING" NOT NULL,
    "BESTAND" "BETRAEGE",
    "LASTRESET" "DAT",
    PRIMARY KEY ("USERNAME")
    );

    /* Grant Roles for this database */

    /* Grant permissions for this database */

  • #2
    Hallo Icke

    Sicher, dass es die Umlaute sind und
    du nicht ausversehen zu lange Strings speicherst ?

    Zeig mal ein Beispiel insert

    Heik

    Comment


    • #3
      Hallo Heiko,

      ich füge die Daten testweise über die IBConsole ein, und es sind die Umlaute, denn wenn ich z.B. ü als ue einfüge, dann nimmt es der Server problemlos.

      Ich habe aber gestern abend herausgefunden, dass es an meiner Installation des IB-Servers liegen muß, denn auf einem anderen Rechner mit der selben Konfiguration läuft es einwandfrei. Wahrscheinlich liegt es daran, dass ich vorher auf dem betroffenen Rechner schon mal Firebird installiert hatte.

      Ich danke Dir
      CU Ick

      Comment


      • #4
        Nein, daran wird es nicht liegen. Du must bei der DB und bei der Verbindung aus deinem Programm heraus, den gleichen Zeichensatz benutzen. Du hast die DB mit WIN1252, also must du bei der Verbindung auch WIN1252 einstellen

        Comment


        • #5
          Hall Icke,<p>
          siehe Nachricht von Andre und zusätzlich.
          <p>
          In der IBConsole musst du win1252 als "default character set" bei "register database" festlegen.<br>
          Wie ich gerade sehe, geht das nur beim registirieren der datenbank, also schmeiss die alte raus (unregister) und registriere deine db neu.
          <p>
          Heik

          Comment

          Working...
          X