Announcement

Collapse
No announcement yet.

Numeric(15,2) und Dialect1

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

  • Numeric(15,2) und Dialect1

    Hallo<br>
    nach dem Erzeugen einer SPs mit Numeric(15,2)
    hat Interbase meine schöne Dialect1 in eine Dialect3-DB "umgeformt"<p>
    2 Fragen:<br>
    1. Bekomme ich das über backup-restore wieder nach
    Dialect1 zurück ?
    <br>
    <br>
    2. Sollte ich lieber double precision nehmen (numeric(8,2) ergibt ja intern Integer) ?<br>
    Ich habe jetzt erst mal als Notlösung Numeric(12,2) genommen.
    <p>
    Es sollen nur Tage (auch halbe) zurückgegeben werden und kleine Stundenwerte.
    <p>
    Danke im voraus<br>
    Heiko

  • #2
    So,<br>
    ich habe mal ein bissel probiert mit numeric.<p>
    Endergebnis:Finger weg, nimm double precision.
    <p>
    In einem konkreten Fall hatte ich ne SP, die numeric(12,2) zurückgeben sollte, beim Kompilieren wurde aber 15,2 drausgemacht !!
    <br>
    Wieder auf 12 geändert, -> 15,2 !! sagenhaft.
    <p>
    Und nun das schlimme daran: In der Firma läuft die SP korrekt, beim Kunden wird NULL zurückgegeben.
    <p>
    Es handelt sich um die gleiche Interbase-Version (6.0.1.6), die gleiche Datenbank (Kunden-Backup und Restore hier in Firma.
    <p>
    Jetzt habe ich das komplett auf double precision geändert und es läuft.
    <p>
    Heik

    Comment


    • #3
      Hallo Heiko,

      ich habe jetzt mal ein wenig getest, zwar mit Firebird aber das dürfte in diesem Fall keinen Unterschied machen.

      Grundsätzlich wird bei den Datentypen Numeric/Dezimal von IB/FB der kleinst mögliche Datentyp verwendet. Im Dialekt 1 ist das "Double Precision". Double Presicion hat 15 signifikante Stellen. Offensichtlich wird nur die Anzahl der Nachkommastellen beachtet und ansonsten kann der vollständige Wertebereich des tatsächlich verwendeten Datentyps verwendet werden (bei Ganzzahldatentypen Wertebereich / 10^Anzahl Nachkommastellen).

      Unabhängig davon kann ich mir aber nicht vorstellen das durch kompilieren einer SP sich der Dialekt einer Datenbank ändert.

      Gruß

      Torste

      Comment


      • #4
        Tja Torsten,<br>
        es handelte sich in diesem Fall um eine 100 MB-Datei (Dialect 1), auf die nur per BDE5.1 zugegriffen wird.<br>
        Nachdem ich die SPs angelegt hatte, ging nichts mehr, der Dialect war plötzlich auf 3.
        <p>
        Heik

        Comment

        Working...
        X