[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2007
    Beiträge
    25

    Prorammverhalten unter 5.4 <=> 6.1

    Wir haben ein SQLRPGLE - PGM, das wie gewünscht unter OS 5.4 erstellt wurde und unter OS 5.4 & 6.1 läuft. Aufgrund eines fachlichen Fehlers wurde das PGM unter 6.1 umgewandelt und 'gedebugt'.

    Das PGM hat nun eine Merkwürdigkeit, die vorher nicht da war.
    Meldet man sich an der i5 an und führt das Programm aus, so sollen u.a. in eine Tabelle x Werte aus Tabelle y eingetragen werden. Die Werte werden aber für keinen Datensatz eingetragen.
    Führt man dasselbe Programm nochmals aus, dann wird der Datensatz geschrieben.
    C/exec sql
    C+ UPDATE table1 SET IDSOID = :P1OID WHERE CURRENT OF S1
    C/end-exec

    Beim 1. Durchlauf (da wo nicht geschrieben wird) ist im Debug-Modus das SQL ausgesternt
    Beim 2. Durchlauf ist das SQL nicht ausgesternt.

    Unsere Programmierer konnten mir nicht weiterhelfen, ich selbst bin kein RPG-Programmierer, sondern debugge nur hin und wieder. Insofern bitte nicht in Hieroglyphen antworten, vielen Dank!

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Vielleicht gibt es das Programm mehrfach.

    Prüft mal mit WRKOBJ OBJ(*ALL/Programmname) OBJTYPE(*PGM)

  3. #3
    Registriert seit
    May 2007
    Beiträge
    25
    Bei gleicher LIBL?
    Ich mache folgendes
    1. Programm via Befehl aufrufen => Update klappt nicht
    2. F9 & Datenfreigabe => Update klappt

  4. #4
    Registriert seit
    Jun 2009
    Beiträge
    316
    Programm mal mit COMMIT(*NONE) umwandeln

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Der SQL ist normalerweise immer auf Kommentar, da er durch den Precompiler ersetzt wird.
    Mit F15 auf Spool-Sicht umschalten um den tatsächlichen RPG-Code zu sehen.
    Außerdem sollte man nach dem SQL-Befehl mal den SQLCOD auswerten.
    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
    Nov 2003
    Beiträge
    2.307
    Ist denn die LIBL wirklich die gleiche? Vielleicht ändert das Programm ja die LIBL?

    Am besten vor jedem Programmaufruf mal ein WRKOBJ OBJ(*LIBL/Programmname) OBJTYPE(*PGM) machen und vergleichen.

    Die Debugansicht (1) mit ausgesternten SQL-Anweisungen deutet darauf hin, daß das Programm mit CRTSQLCBL OPTION(*LSTDBG) gewandelt wurde.

    Die Debugansicht (2) mit nicht ausgesternten SQL-Anweisungen deutet darauf hin, daß das Programm mit CRTSQLCBLI DBGVIEW(*SOURCE) gewandelt wurde.

    Oder wird das Programm vor dem zweiten Durchlauf neu gewandelt?

  7. #7
    Registriert seit
    May 2007
    Beiträge
    25
    Vielen Dank. COMMIT = *NONE hat geholfen

  8. #8
    Registriert seit
    May 2007
    Beiträge
    25
    @Fuerchau
    Da hatte ich anscheinend Tomaten auf den Augen, das SQL war in beiden Fällen, -wie es sich gehört- im DEBUG ausgesternt.
    SQLCOD auslesen ist mir nicht eingefallen - merke ich mir für nächstes Problem, Danke.
    C*exec sql
    C* UPDATE IDPCD1AA SET IDSOID = :P1OID WHERE CURRENT OF S1
    C*end-exec
    C EVAL SQL_00043 = P1OID SQLCOD 0
    C Z-ADD -4 SQLER6
    C CALL SQLROUTE
    C PARM SQLCA
    C PARM SQL_00038
    1. Lauf: SQLCOD = -000000508
    2. Lauf: SQLCOD = 000000000


    SQL0508SQLCODE-508SQLSTATE24504
    Explanation: Cursor&1notpositionedonlockedrow

  9. #9
    Registriert seit
    May 2007
    Beiträge
    25
    Nochmals vielen Dank für die schnelle, kompetente Hilfe an alle.
    @Pikachu
    SQL ILE RPG-Objekt erstellen (CRTSQLRPGI)
    '*LSTDBG ' für Parameter OPTION ungültig.
    => Das Problem mit dem nicht ausgesternten SQL im DEDBUG ist wohl auf einen Fehler zwischen Stuhl und Tastatur zurückzuführen -(
    =>Drückt man im Debug F8, sieht man nicht alles, was ganz links so steht...

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Zitat Zitat von urrumpel Beitrag anzeigen
    @Pikachu
    SQL ILE RPG-Objekt erstellen (CRTSQLRPGI)
    '*LSTDBG ' für Parameter OPTION ungültig.
    Achso, du hast ja RPG. Da geht bei ILE natürlich kein CRTSQLRPG (wo es diesen Parameter gibt) wie bei COBOL mit CRTSQLCBLI und CRTSQLCBL.

Similar Threads

  1. English: June IBM Announcement Special - print + electronic
    By Isabella Pridat-Zapp in forum Marketing mit NEWSolutions
    Antworten: 0
    Letzter Beitrag: 19-04-10, 03:01
  2. Announcement Marketing: Print und elektronisch
    By Isabella Pridat-Zapp in forum Marketing mit NEWSolutions
    Antworten: 0
    Letzter Beitrag: 08-04-10, 09:12
  3. ErrorLg beim Starten von WAS 6.1
    By nico1964 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 26-02-10, 10:40
  4. WAS 6.1 auf V5.4
    By nico1964 in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 24-02-10, 07:43
  5. WAS 6.1 kaputt
    By nico1964 in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 16-02-10, 14:21

Berechtigungen

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