[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    35

    Feld mit loval via SQL belegen

    Hallo zusammen,

    aus einem PC-Programm sollen Daten in unsere Buchhaltung auf der iSeries importiert werden. Hierzu gibt es seitens der Buchhaltung eine Standard-Schnittstelle.

    Diese ist so intelligent, dass Felder, die mit *loval belegt sind, in der Zieldatei nicht verändert werden.

    Die Daten werden auf PC Seite via SQL über die CO400-Treiber von SystemObjects in die DB2/400 geschrieben.

    Und jetzt mein Problem:
    Wie kann ich Felder mit loval belegen? Gibt es im Sql ein Schlüsselwort für loval?

    Wenn ich das richtig sehe, speichert die DB2 numerische Loval-Werte einfach z.B. mit -9 ab. Strings werden aber mit Hex(00) gespeichert und nicht mit Hex(40) für Blank.

    Wer weiß Rat? Bin für jeden Tipp dankbar.

    Booley

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da LOVAL eine Eigenart des RPG ist, müssen die Felder vom PC-Programm entsprechend mit dem kleinsten möglichen Wert belegt werden:

    -9
    -99
    -999
    -9999
    -9.9
    usw. je nach Ausprägung des Feldes. Es können allerdings Schwierigkeiten auftreten, da das PC-Programm ggf. mit Double arbeitet und es somit zu Rundungsproblemen bei Nachkomma kommt.

    Für Zeichenfelder müssen entsprechend lange HEX'00'-Werte übergeben werden. Dies ist allerdings nahezu unmöglich, da Hex'00' als Ende einer Zeichenkette erkannt wird und somit leere Felder per SQL übergeben werden. Diese werden wiederum selbständig mit Leerzeichen aufgefüllt.

    Diesbezüglich muss also die Intelligenz des AS/400-Programmes angepasst werden.
    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

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    35
    Hallo,

    erst einmal danke für die schnelle Antwort. Dann habe ich das Prinzip also anscheinend schon mal richtig verstanden. Bleibt das Hey(00) Problem.

    Dummer Weise ist von unserer Seite kein RPG-Programm dazwischen, dass diese Aufgabe mit loval übernehmen kann. Und wir wollten es eigentlich auch vermeiden, da noch eines zwischen zu hängen, da dies nur das erste von vielen PC-Schnittstellen-Programmen ist.

    Kann ich denn nicht auch über SQL Hex-Werte als Values angeben?

    Gruß
    Booley

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Klar geht das: X'00....' in der Anzahl benötigter Zeichen.
    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

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau
    Klar geht das: X'00....' in der Anzahl benötigter Zeichen.
    Unter Release V5R3M0 könnte statt einer Aufzählung auch die Scalare Funktion Repeat verwendet werden:
    PHP-Code:
    Repeat(x'00'Length(MyFld)) 
    Vor Release V5R3M0 könnte mit Hilfe der Scalaren Funktionen TRANSLATE und SPACE ein Feld komplett mit x'00' gefüllt werden.
    PHP-Code:
    Translate(Space(Length(MyFld)), x'00'' '
    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

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    35
    Alles klar, jetzt klappt's.

    Vielen Dank an alle!

    Booley

Similar Threads

  1. per SQL Feld ändern...
    By svente in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 23-01-07, 09:49
  2. sql num. Feld formatieren
    By rr2001 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 11-07-06, 14:10
  3. Numm Feld nach DatumsFeld in SQL
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 27-04-05, 15:36
  4. AS/400 Zugriff via Linked Server unter SQL Server 2000
    By epsih2 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 29-11-04, 10:06

Berechtigungen

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