[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Hallo Max,

    @1: Ab 7.1 wird strenger geprüft. Was zuvor nur eine Warnung war, ist jetzt ein Fehler.
    In diesem Forum gab es auch schon andere mit dem gleichen Problem.

    @2: Hattet ihr unter V5R4 vielleicht default Werte beim Kompelieren?
    Vergleich mal mit DSPSRVPGM / DSPPGM die Attribute auf beiden Systemen.

    lg Andreas

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Zu 1)
    Da gibts keine Umgehung.
    Du kannst zwar eine View mit einem cast auf DIGITS darüberlegen, ebr wer weiß schon was sonst noch damit genacht werden wenn das Ergebnis dann nicht in die Hostvariable passt wegen Umsetzungsfehler.

    zu 2)
    Hier muss man schon noch den Cursor-Status prüfen.
    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
    Jan 2006
    Beiträge
    112
    Hallo Baldur,

    zu 2) hätte ich noch einige Rückfragen.

    Auf welcher Seite soll der Cursor geprüft werden (Procedure oder Aufrufer) und hat der Aufrufer überhaupt eine Chance den Cursor zu prüfen, wenn ja wie?

    Gruß
    Max

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... ich habe zu 1 zwar keine Erfahrungswerte (da ich solchen Murks nicht mache und ausbaue, wenn er mir vor die Füße läuft), aber hat da mal jemand probiert SQL_DECFLOAT_WARNINGS auf *YES zu setzen?

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Zu 1)
    Da die Tabelle ja "TEST" heißt, nehme ich mal an, dass dies nur ein Test-SQL ist und die Tabelle keine relevanten Daten hat.

    zu 2)
    Da deine Procedure mittels COMMIT(*NONE) definiert ist, und V7 jetzt wohl restriktiver prüft, ist ein 2-Phase-Commit nicht möglich. Schließlich ist für deine Procedure kein Commit erforderlich und wird deshalb wohl abgelehnt (keine Commit-Definition aktiv).
    Entweder die Procedure auf COMMIT(*CHG) anpassen incl. Journalisierung der betroffenen Dateien oder dein Java so anpassen, dass für die Procedure kein Commit durchgeführt 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

  6. #6
    Registriert seit
    Jan 2006
    Beiträge
    112
    @Dieter: wie bereits erwähnt, es handelt sich hierbei um eine Kaufsoftware - die hantiert mit Scripten rum, worin beschrieben ist, wie auf die DB Zugegriffen wird --> wie das SQL zusammengefummelt wird kann ich nicht beeinflussen. Klar ist sowas murks...

    @Baldur:
    zu 1) es handelt sich schon um eine Produktivtabelle, habe sie lediglich hier als TEST deklariert

    zu 2) COMMIT(*CHG) brachte keinen Erfolg und führt zum Cursor-Fehler.
    Die App-Server-Seite zu modifzieren bedeutet böses rumgefrickel.

    Gäbe es sonst noch eine Option?

    Vielleicht ist die Procedure auch das falsche Konzept. Diese existiert nur, um sich eine ID für den nächsten "Write" zu ermitteln. Sowas hätte man damals als auto increment Spalte definieren sollen... Aber nu ist das Kind in den Brunnen gefallen;(

    Anbei noch die Definitionen:

    Code:
    H DECEDIT('0,') DATEDIT(*DMY.) ALWNULL(*USRCTL)  
    H DFTACTGRP(*NO) OPTION(*NODEBUGIO)
    in der Main wird dann ein RPG gecalled, welche die nächste Nummer ermittelt und das Ergebnis zurückliefert:

    Code:
    CALL      'SOMEPGM'                
    PARM                    XXX
    PARM                    XXX   
    PARM                    XXX   
    PARM                    XXX
    
    C* *  Datenstruktur füllen                            
    C     1             OCCUR     DSARRAY1                
    C                   Z-ADD     G_NUMMER      #NUMMER   
     *                                                    
    C/Exec Sql                                            
    C+  SET RESULT SETS FOR RETURN TO CLIENT              
    c+      ARRAY :DSARRAY1 FOR 1 ROWS                    
    C/End-Exec                                            
    C                   MOVE      *ON           *INLR
    Gruß
    Max

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    zu 1)
    Da wirst du leider um eine Anpassung nicht herumkommen. Sonst musst du wohl auf V5R4 bleiben.

    zu 2)
    Mach einfach einen Sequence statt der Procedure:
    create sequence myseq
    select next value for myseq from sysibm.sysdummy1
    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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... ich habe gerade nochmal ein wenig rumgespielt:
    a) select * from myTable where myInt > ''
    b) select * from myTable where myInt > ' '
    c) select * from myTable where myInt > '0'
    Variante c geht auf Oracle, MS SQL, MySQL und Firebird
    Oracle: a kein Fehler (wird als null interpretiert), leere Menge; b Fehler
    MS SQL: a und b Fehler
    MySQL beide kein Fehler, wird als 0 interpretiert
    Firebird beide kein Fehler, wird als null interpretiert

    D*B

    Summa Summarum: der SQL Standard legt das Verhalten nicht fest => Meldung Software defekt an IBM, da Kompatibilität gebrochen wird!!!
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Jan 2006
    Beiträge
    112
    @Baldur: Sequence bedeutet richtig viel Aufwand, da sämtliche Programme, die in diese Datei schreiben angepasst werden müssten... (RPG Sourcen als auch Java-Umwelt)

    Wer hätte damals gedacht, dass eine Hausgemachte ID - Generierung einem richtig böse auf die Füße fallen würde.

    Sonst noch Hinweise, die die Procedure am Leben erhalten könnten?

    Gruß
    Max

  10. #10
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Meines erachtens dürfte das COMMIT *NONE keine Probleme machen. Das PGM würde halt außerhalb der Transaktion laufen und dürfte darauf keinen Einfluss haben.

    Probiere testhalber das PGM mit DFTACTGRP(*NEW) zu erstellen.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    *NEW ist bei SQL-Aufruf eher die schlechte Variante, ins besonders wenn mit *INLR = *OFF verlassen wird.
    Aber eine explicit benannte eigene ACTGRP könnte gelingen, da diese eigene Commit-Definitionen hat.
    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

  12. #12
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Nur so ein Schuß ins Blaue:

    @1: Prüf' mal welches Naming in der Umgebugn, in der das SQL-Statement ausgeführt wird verwendet wird. ggf. wird jetzt SQL Naming verwendet und damit die Bibliotheksliste nicht mehr durchforstet.

    @2: Mit READ SQL DATA habe ich auch bisweilen auf den 7.1 Maschinen Probleme versuch mal die Funktion mit MODIFIES SQL DATA zu erstellen.

    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

Similar Threads

  1. iSeries V5R4 Systemstart
    By roti in forum NEWSboard Server Software
    Antworten: 2
    Letzter Beitrag: 17-02-14, 11:23
  2. V5R4
    By dino in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 18-12-13, 13:59
  3. V5R4 -> V7R1, Problem mit Trigger-Programmen
    By programmer400 in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 03-12-13, 14:19
  4. neue Maschine, V7R1, IFS
    By programmer400 in forum IBM i Hauptforum
    Antworten: 16
    Letzter Beitrag: 19-11-13, 11:05
  5. Java auf V5R4 Performance
    By TR1 in forum NEWSboard Java
    Antworten: 1
    Letzter Beitrag: 02-11-13, 14:02

Tags for this Thread

Berechtigungen

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