[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    98

    Rechenoperation aus Alpha String

    Problem -> Ich möchte gerne eine Rechen operation variabelhalten und eine rechenoperation zu einem alpha string zusammenfügen um später damit rechnen zu können ist so was möglich ich bitte um vorschläge bzw. mögliche lösungen.


    &L = Länge in mm z.B. 2100
    &B = Breite in mm z.B. 21
    &H = Stärke in mm z.B. 14
    &VEP = Stück im Paket z.B. 10
    Rechen OPERATION
    &L x &B x &VEP / 1000000 = XXX,XX QM Deckfläche
    Rechen OPERATION
    &L x &B x &H x &VEP / 10000000 = X,XXX CBM * Volumen

    operation wird als Alpha String zusammengestellt es mussl variabel definierbar bleiben *
    (z.B. für flächen berechnung, volumen berechnung....) *
    BEISPIEL
    operation = '2100 x 121 x 10 / 1000000'

    ERGEBNIS 2,54 Quadratmeter






  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hallo,

    gib Er mal zwei konkrete Beispiele.

    k.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Mit SQL ist fast alles möglich, allerdings benötigt man dazu eine Datei mit mindestens 1 Satz:

    select meine_Formel from myfile

    Das Ganze kann man dann per Prepare und Statement-Cursor jederzeit ausführen.

    Z.B.:

    select 12*3+4/3.123 as erg from myfile
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Mar 2006
    Beiträge
    98

    Beispiele habe ich angehängt mit Bild aus der source hat es nicht geklapt. gruss

    siehe Beispiel oben Danke und gruss an alle

  5. #5
    Registriert seit
    Mar 2006
    Beiträge
    98

    Ok

    wie kann ich es im RPG anbinden oder als parameter übergeben??

  6. #6
    Registriert seit
    Mar 2006
    Beiträge
    98

    also

    1) ich erstelle mein String(rechenoperation im Alpha format 200 Stellen alpha)
    2) schreibe in eine Datei

    3) Dann wird SQL ausgeführt

    wo bekomme ich ergebnis, wie kann ich es einfach anbinden??

  7. #7
    Registriert seit
    Aug 2004
    Beiträge
    923
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Mit SQL ist fast alles möglich, allerdings benötigt man dazu eine Datei mit mindestens 1 Satz:

    select meine_Formel from myfile

    ......
    Hello,
    habe mal gesucht und gefunden.

    Wie wäre es mit:
    select meine_Formel from sysibm/sysdummy1
    ?
    Das war doch so ne Zombiedatei die man für sowas missbrauchen kann?

    Gruss

    kuempi

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    d MyStmt s 512
    d MyErg s 30p 9

    c/exec sql set options commit=*none
    c/end-exec
    c/exec sql
    c+ declare cursor mycursor for statement mystmt
    c/end-exec

    c eval mystmt = 'select ' + Formel + ' from myfile'
    c/exec sql
    c+ prepare mystmt for :mystmt
    c/end-exec
    c if sqlcode <> *zero
    c* Fehler in Formel
    c endif
    c/exec sql
    c+ open mycursor
    c/end-exec
    c/exec sql
    c+ fetch mycursor into :myerg
    c/end-exec
    c/exec sql
    c+ close mycursor
    c/end-exec

    Die Syntax der SQL-Befehle habe ich jetzt leider nicht genau im Kopf.

    Die Pseudo-Datei mit 1 Satz benötigst du nur, damit überhaupt 1 Satz und somit dein Ergebnis berechnet wird.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Mar 2006
    Beiträge
    98
    0417.65 C eval formel = '2100 * 121 * 10 / 1000000' *
    0417.68 c/exec sql set option commit=*none
    0417.69 c/end-exec
    0417.70 c/exec sql
    0417.71 c+ declare mycursor cursor for mystmt
    0417.72 c/end-exec
    0417.73 c eval mystmt = 'select ' + %trim(Formel)
    0417.74 c + ' from myfile'
    0417.75 C*
    0417.76 c/exec sql
    0417.77 c+ prepare mystmt from :mystmt
    0417.78 c/end-exec
    0417.79 c* if sqlcode <> *zero
    0417.80 c* Fehler in Formel
    0417.81 c* endif
    0417.82 c/exec sql
    0417.83 c+ open mycursor
    0417.84 c/end-exec
    0417.85 c/exec sql
    0417.86 c+ fetch mycursor into :myerg 0417.87 c/end-exec *
    0417.88 c/exec sql *
    0417.89 c+ close mycursor *
    0417.90 c/end-exec *
    0417.91 C z-add myerg win309 30 9 *

    Wenn ich es so wie oben ausführe bekomme ich als ergebnis immer 0

    bitte um hilfe

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Du musst den SQLCOD auswerten !
    Probiere den Select erst mal per STRSQL aus.

    Hast du die Datei "myfile" mit 1 Satz auch angelegt ?
    Das kannst du auch per CRTPF und UPDDTA, ansonsten per SQL mit CREATE TABLE und INSERT.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Mar 2006
    Beiträge
    98
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Du musst den SQLCOD auswerten !
    Probiere den Select erst mal per STRSQL aus.

    Hast du die Datei "myfile" mit 1 Satz auch angelegt ?
    Das kannst du auch per CRTPF und UPDDTA, ansonsten per SQL mit CREATE TABLE und INSERT.
    ich hatte kein satz im myfile. Jetzt geht es. Aber ergebnis immer ohne nachkomma stellen ergebnisfeld ist mit 30,9 definiert??

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    SQL optimiert da manchmal unglücklich.
    In obigem Fall wird reine Ganzzahlenarithmetik verwendet.

    Probiere mal verschiedene Varianten per STRSQL:

    2100.0 * 121.0 * 10.0 / 1000000.0

    ggf. ist auch ein Casting erforderlich, e.g.:

    dec(2100, 11, 2) ...
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. String mit Returns in iSeries Datenfeld speichern
    By e_sichert in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 07-11-06, 15:25
  2. String zusammenstellen
    By edig in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 07-07-06, 10:51
  3. Systemdatum nach String
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 03-07-06, 15:25
  4. String mit HexInhalt muss als Hex-Wert in Variable
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 16-05-06, 07:45
  5. RPG-ILE: Alpha --> Numeric
    By TomWaf in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 12-05-06, 09:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •