-
Das "AND CONTINUE RUN UNIT" war mir noch nicht bekannt, aber ist genau das was du brauchst. Ob unbedingt als allerletzte Zeile oder als letzter Befehl einer Section ist wohl nicht so entscheidend. Du musst schließlich unterscheiden können ob die RunUnit aktiv bleiben soll oder nicht. Bei EOF könnte man durchaus EXIT PROGRAM ansonsten halt mit AND CONTINUE ...
CRTCBLMOD mit anschließendem CRTPGM ist so die korrekte Vorgehensweise (COBOL ist nun mal doch etwas anders als RPG, wo vieles einfacher ist).
Direktes SQL meine ich ein Programm auf dem PC, dass die SQL's (embed oder nicht) per ODBC absetzt und zwar in den beiden Varianten. Es gibt häufig Dateien mit mehr als 100 Feldern, die aber vom Programm nicht benötigt werden. Warum also nicht benötigte Daten überhaupt erst lesen ?
Für eine performante Lösung muss man auch schon mal die Funktionalität prüfen, ob nicht z.B. eine Leseschleife über mehr als 1 Datei nicht auch als Join direkt aufgelöst werden kann.
Zu prüfen ist auch, ob bestimmte Berechnungen der Daten nicht bereits per SQL erledigt werden können, man braucht manchmal nur das Ergebnis aber nicht die 2 - 5 Felder der Berechnung usw. usw.
-
@Fuerchau
Besten Danke für deine erstklassige Hilfestellung! Fühle mich schon fast als halber AS/400-Experte, *LOL*
Also der Exit Program reicht tatsächlich als letztes Statement in einer Section, hatte da etwas übersehen.
Gibt es eigentlich etwas Spezielles zu beachten wenn man umstellt von OPM Cobol auf ILE Cobol? Vermute mal nicht ...
Ich konnte im Handbuch nicht herausfinden wie man einen anderen ENTRY POINT als den normalen Programmstartpunkt, also die erste Zeile nach PROCEDURE DIVISION, bestimmen kann. Und als ich dann mit SET {Procedure-Pointer} ENTRY {PGM1} und anschließendem CALL {Procedure-Pointer} kam die Meldung das rekursiver Aufruf nicht zugelassen ist. Ich frage mich nun wo liegt da der Unterschied zum herkömmlichen dynamischen CALL?
Offenbar ist es wohl nicht möglich wenn eine Aufrufkette von PGM1 -> PGM2 -> PGM3 -> PGM4 besteht direkt aus PGM4 zurück zum PC zu gehen. Man muss offenbar rückwärts durch alle Programme gehen bis zum Hauptprogramm (aufgerufen durch die External Procedure) um zurück zum PC zu kommen!?!? Oder gibt es doch eine Möglichkeit? (STOP RUN geht natürlich, aber dann ist die ganze ACTGRP weg)
Interesssant wäre z.B. die Möglichkeit von einer beliebigen Stelle in einem beliegen Cobol-Programm der RUN UNIT zurück zum PC zu verzweigen und nach Verarbeitung auf dem PC einfach mit der nächsten Programmzeile (oder auch einem ENTRY POINT) weiterzumachen.
Was mir auch noch unklar ist warum folgendes Szenario nicht funktioniert hat:
CRTCBLMOD PGM1
CRTCBLMOD PGM2
CRTPGM PGM1 mit Angabe von PGM1 und PGM2 als Module
Wenn man nun vom PC aus per External Procedure PGM1 startet und PGM1 versucht PGM2 aufzurufen (dynamischer CALL) dann wird PGM2 nicht gefunden (Auflösung nicht möglich ...)
Habe dann immer CRTCBLMOD PGM1, CRTCBLMOD PGM2, CRTPGM PGM1 und CRTPGM PGM2 gemacht. Dann funktionierte es. Ist das die normale Vorgehensweise?
Das mit dem direkten SQL-Programm ist sicher mittel- bis langfristig die bessere Lösung. Denn das wäre definitiv eine Lösung die dann auch auf allen Datenbanken funktioniert. Vorraussetzung für eine gute Performance ist da sicherlich eine kritische Analyse der Datenzugriffe und einer vernünftigen Anpassung.
Vermutlicherweise wird dennoch eine Lösung ohne Umsetzung der Dateizugriffe auf SQL-Basis nötig werden, da diese Lösung für uns einfach schneller fertigzustellen wäre und sich da ein Termindruck andeutet ...
Beste Grüße
Neptun
-
Man unterscheidet zwischen CALL "Extern" bzw CALL PROCEDURE "INTERN" !
Entry-Point's gibts nicht.
SQL betrachtet das ganze wie einen OPM-Aufruf.
Ein EXIT-Program muss natürlich durch alle Ebenen zurück !
Recursive geht irgendwo bei der Deklaration Identification bzw. Configuration.
Similar Threads
-
By Kirsten Steer in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 11-12-06, 08:45
-
By stef2 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 07-04-06, 18:01
-
By RobertMack in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 28-06-04, 14:52
-
By Burgy Zapp in forum Archiv NEWSboard Events
Antworten: 0
Letzter Beitrag: 15-03-04, 11:35
-
By Jens Falk in forum NEWSboard Server Software
Antworten: 4
Letzter Beitrag: 12-02-02, 12:23
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks