Announcement

Collapse
No announcement yet.

UDF: Datentypen in IB-DB u. Delphi-Code

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

  • UDF: Datentypen in IB-DB u. Delphi-Code

    Hallo,

    ich habe eine User Defined Function mit Delphi 5 Prof. erstellt, die den Inhalt einer numerischen Datenbankspalte in Worten ausgibt (für das automatisierte Erstellen von Schecks). Die Spalte in der IB-Tabelle ist als DECIMAL(11, 2) definiert, für den Parameter im Delphi-Code habe ich CURRENCY verwendet. Leider ergibt sich daraus ein unangenehmer Nebeneffekt: wenn ich als Wert in der Tabellenspalte 247,30 stehen habe, kommt als Text "Zwei" heraus. Multipliziere ich den Wert mit Hundert, funktioniert alles bestens; wenn ich als Parameter für die Funktion einen Integerwert verwende, tritt das Phänomen nicht auf. Wer weiß Abhilfe?

    Gruß Jürgen

  • #2
    Bei Dialekt 3 (unterstelle ich mal) wird ein NUMERIC(11, 2) als 64-Bit Integer an eine UDF übergeben. Man sollte alse Delphi-seitig "var wert int64" deklarieren. Die zwei untersten Stellen kann man per Division durch 100 innerhalb der UDF zurechtschieben.

    hth
    Karsten Strobe

    Comment


    • #3
      Hallo Jürgen,<br>
      den unangenehmen "Nebeneffekt" hatte ich auch,<br>
      mit double precision sollte es klappen.<p>
      Heik

      Comment


      • #4
        Vielen Dank für die Unterstützung. Der Tipp mit der int64-Variable hat geholfen.
        Jürgen Schaffrot

        Comment

        Working...
        X