[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    91

    Question CALL PGM schlägt fehl

    Hallo Forum,
    Frage zum Verständnis:

    Wenn ich im RPG aus einem PGM1 mit CALL ein PGM2 aufrufe, bekomme ich, wenn ich den Namen von PGM2 z.B. in Kleinbuchstaben eingebe, einen Abbruch:

    MCH3401

    Nachricht . . . : Auflösung zu Objekt PgM2 nicht möglich. Art und Subart
    X'0201', Berechtigung X'0000'.
    Ursache . . . . : Ein System- oder ein Datenzeiger kann nicht aufgelöst
    werden.

    Wie kommt das? Warum ist die Maschine hier an der Stelle Case-Sensitiv?

    Danke schonmal....

    Gruss

    Alexander May

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Bei OPM-Calls war das schon immer so, da Objektnamen grundsätzlich in Großbuchstaben sind.

    Wenn du einen CALL per CMD abgibst, schlägt die automatische Umwandlung in Großbuchstaben des CMD-Prozessors zu, solange kein Hochkomma verwendet werden.

    Bei ILE-Prozeduren gilt genauso die Case-Sensitivität.

    Bei SQL-Namen wird auch automatisch in Großbuchstaben gewandelt, wenn der Name nicht in Anführungszeichen steht.

    select feld from file => SELECT FELD FROM FILE
    select "feld" from "file" => SELECT "feld" FROM "file"

    Ggf. wird dann das Feld oder die Datei dann nicht gefunden, da auch hier alles Case-Sensitive ist.
    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
    2.873
    Zitat Zitat von Fuerchau
    Bei SQL-Namen wird auch automatisch in Großbuchstaben gewandelt, wenn der Name nicht in Anführungszeichen steht.
    Das ist nicht nur mit SQL-Namen so, das funktioniert auch für jedes System-Objekte, d.h. es ist z.B. möglich eine case-sensitive Bibliothek anzulegen.

    PHP-Code:
    CRTLIB LIB("Hauser")                    
           
    TEXT('Case Sensitive Bibliothek'
    Ich vermute dass der Fehler auftritt, weil entweder ein CALL verwendet wurde und der Programm-Name in Hoch-Kommata case sensitiv angegeben wurde, oder wenn Prototyping verwendet wurde wurde das Programm im Schlüssel-Wort ExtPGM ebenfalls in Hoch-Kommata case sensitiv angegeben.

    Birgitta
    Birgitta Hauser

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

  4. #4
    Registriert seit
    Jul 2001
    Beiträge
    2.646
    Zitat Zitat von B.Hauser
    PHP-Code:
    CRTLIB LIB("Hauser")                    
           
    TEXT('Case Sensitive Bibliothek'
    Hallo Biggi,
    das ist ein schönes Beispiel, wie man dann die Leute verwirren kann, spätestens wenn WRKLIB anzeigt:

    PHP-Code:
    _     "Test"      PROD     
    _     
    "TesT"      PROD 
    :-)

    Wie bei IBM üblich, weiss man nicht ob das Bug oder Feature ist; man sollte es nur meines Erachtens meiden. Bin selbst sowieso kein Freund des CaseSensitiven, generell ob es ein Objekt, ein Feldname oder wasauch immer ist. Das bringt immer nur Probleme, wie die Unixer unter uns nur zähneknirschend zugeben müssen...

    -h

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von holgerscherer
    Bin selbst sowieso kein Freund des CaseSensitiven, generell ob es ein Objekt, ein Feldname oder wasauch immer ist. Das bringt immer nur Probleme, wie die Unixer unter uns nur zähneknirschend zugeben müssen...

    -h
    Ich hab' auch nicht gesagt, dass case sensitiv toll ist und dass man es unbedingt verwenden sollte, nur dass es auch funktioniert. Eigentlich bin ich ganz zufrieden mit der Konvertierung in Groß-Schreibung. In ILE Quellen kann man ja case sensitive schreiben wenn man möchte.
    Dann kann jeder so schreiben, wie es ihm am besten gefällt und ChkArtikelNr, chkArtikelNr, CHKARTIKELNR ruft immer die gleiche Funktion auf.

    Birgitta
    Birgitta Hauser

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

Similar Threads

  1. Go Save 21 schlägt fehl!!!
    By Der_Unwissende in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 14-11-05, 08:30
  2. Antworten: 9
    Letzter Beitrag: 14-07-05, 16:35
  3. RSTLIB von 3570 schlägt fehl
    By Mark_S in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 06-01-05, 14:45
  4. RSTLIB von 3570 schlägt fehl
    By Unregistriert in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-12-04, 15:20
  5. VA RPG Read anweisung schlägt fehl
    By Peter Kosel in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 18-10-01, 12:49

Berechtigungen

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