Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme SQL in Velocity in Version 19.03

Einklappen
X

Probleme SQL in Velocity in Version 19.03

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • Probleme SQL in Velocity in Version 19.03

    Ich lese aus einem Gleitkommezahlenfeld den Wert per JAVA Script aus und setze in JS einen Requestparameter!
    Dieser wird in einer aufgerufenen neuen Seite und dort im velocity verarbeitet und in eine andere Tabelle geschrieben.

    Der Wert wir im velocity mit $Request.get($Request.get("rq_Wert") gelesen und im Insert einer Datengruppe mit $statement.setFloat(7, $Wert) geschrieben! Das ging in der Version 18.03 problemlos. In der 19.03 kommt der Fehler:

    Fehler 2021-01-12T12:35:45,935Z - de.uplanet.lucy.server.composer.ixservlet.Standard ComposerIxServlet[http-nio-0.0.0.0-8080-exec-3]
    Invocation of method 'setFloat' in class de.uplanet.lucy.server.util.db.DbPreparedStatement threw exception java.lang.NumberFormatException: For input string: "0,00" at internal/application/resource/BC06736106A58CF2A207936AAD715DBFD610EB80/Arbeitsschritt_erzeugenausdokuschritt.vmi[line 112, column 137]

    Offensichtlich muss ich den Wert $Wert irgendwie in ein Float-Format konvertieren. Hat da wer einen Tip? Danke

  • #2
    Der Fehler dürfte durch das komma im String verursacht werden ("0,00").
    Funktioniert es, wenn das Komma durch einen Punkt ersetzt wird?
    $statement.setFloat(7, $Wert.replace(",", "."))

    Kommentar


    • #3
      irgend so etwas wird es sein, aber ich hatte als Dezimaltrenner schon auf "." gesetzt. Ich versuche es aber mal

      Kommentar


      • #4
        Beim auslesen von Werte aus dem request muss man immer beachten, dass hier jegliche Datentypen verloren gehen.
        Nutzt man stattdessen die neuen Parameter (Dort kann man Datentypen hinterlegen) kann man mit $Parameter auf diese zugreifen und hat dabei weniger Probleme mit Datentypen.
        http://docs.intrexx.com/intrexx/vers...Parameter.html

        Kommentar


        • #5
          zu Patrick: Das habe ich versucht, aber es geht dennoch nicht! Auch habe ich inzwischen versucht, die Stringvariable "$ZpVString" (Wert: 4,21) mit
          #set($ZpVFloat = $TextUtil.parseFloat($ZpVString)) in eine Floatvariable zu konvertieren. Ergebnis ist aber eine IntegerVariable mit dem Wert 0 (Siehe Screenshot)
          Auch habe ich versucht replace mit einzubauen und notiert: #set($ZpVFloat = $TextUtil.parseFloat($ZpVString.peplace(",","."))) .
          Ergebnis: Integervariable mit Wert 4. Den Variablentyp und Inhalt habe ich mit $DEBUG.inspect($ZpVFloat) anzeigen lassen: Ich verstehe es nicht mehr! Im Intrexx 18.03 haben die Scripte keine Probleme bereitet. Aber das velocity hat doch mit der Intrexx Version gar nix zu tun! Oder? Über einen Tipp würde ich mich sehr freuen. Danke !!
          Angehängte Dateien

          Kommentar

          Lädt...
          X