[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2006
    Beiträge
    129

    SQL Set problem

    Hallo *all

    ich verwende in einem RPG Programm ein SQL zum umwandeln Decimal in HEX


    wenn ich es so mache dann stimmts:
    PHP-Code:
    cset :hexwert hex(37
    hier kommt 25 raus ist auch richtig nur wenn ich das Variabel machen möchte dann funktioniert das nicht.
    PHP-Code:
      //****************************************
     
    D hexwert         s             10         
     D nummer          s              5  0      
    /FREE 
    nummer 
    37
    /
    end-free 
    c
    /EXEC SQL 
    c
    set :hexwert hex(:nummer
    c/end-exec 
    hier kommt 00037F raus.
    ich habe auch die Variable nummer mit s und mit p probiert, was kann hier noch falsch sein?

    danke im voraus

    steven_r

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    wenn Du Nummer statt gepackt numerisch als Integer definierst klappt es. (SQL interpretiert numerische Ausdrücke, solange kein Dezimal-Trennzeichen angegeben wurde, immer als Integer!)

    Die skalare Funktion Hex konvertiert den Inhalt eines Feldes so wie er gespeichert wurde. In gepackten Feldern werden die einzelnen Ziffern in Halbbytes gespeichert und in dem letzten Halbbyte steht das Vorzeichen.

    Der Inhalt von Integer-Felder wird dagegen binär gespeichert und damit zeigt Dir die Funktion HEX dann auch den gewünschten Wert an.

    Eine andere Variante (ohne SQL) wäre, ein Alpha-Feld in einer Datenstruktur durch ein Integer-Feld zu überlagern.

    PHP-Code:
    D DSConvert       DS                    Qualified                       
    D   Hex                          1A                            
    D   Num                         3U 0  Overlay
    (Hex
    Wenn Du jetzt 37 in DSConvert.Num schiebst, steht der Hex-Wert, den Du suchst in DSConvert.Hex.
    Diese Lösung klappt allerdings nur bei numerischen Werten.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    May 2006
    Beiträge
    129
    Danke für die rasche hilfe.

    das mit der DS funktioniert so nicht wenn ich 37 in num stelle habe ich in Hex einen unlesbaren wert.

    Danke nochmals das mit SQL funktioniert super.

    lg
    steven_r

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Mit Birgittas Lösung wandelst du eine Zahl in Binär um.

    Mit der SQL-Funktion expandierst du die Hexzeichen [0-9A-F], das ist der Unterschied.
    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. problem mit eigener sql function
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 26-05-06, 16:37
  2. SQL Problem
    By Lucky4712 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-05-06, 15:57
  3. Problem bei Abfrage bei Imbedded SQL
    By cbe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-06-05, 16:21
  4. embedded SQL Performance Problem mit SCROLL
    By itec01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 16-09-04, 18:38
  5. Problem bei ILE COBOL mit sql connect to
    By rebe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-09-01, 13:55

Berechtigungen

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