[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Das sind nun 2 ganz verschiedene Dinge!
    ActiveX:
    Hier werden dir nur Möglichkeiten der Programmaufrufe gegeben.
    Die Parameter legst du selber zur Laufzeit fest und zwar unabhängig davon, ob sie zum Programm passen oder nicht. Wenn die Parameter dann falsch sind hast du Pech gehabt.
    Du kannst sowohl Einzelparameter als auch Strukturen definieren. Und für die Umwandlung ASCII/EBCDIC bist du auch noch selber verantwortlich.

    SQL:
    Der Standard verlangt explizite Deklarationen von Prozeduren und Funktionen.
    Die SQL-Runtime prüft nun sogar ob die übergebenen Parameter zur Deklaration passt oder ggf. auch konvertierbar sind.
    Durch sog. "Überladung" kann ich den selben Namen mit anderen Parametertypen mehrfach verwenden. SQL erkennt und findet den richtigen Aufruf.
    Da die IBM nun mal die Faulheit der AS/400-Programmierer kennt hat sie einen vereinfachten Aufruf ermöglicht, der mit dem Standard aber auch gar nichts zu tun hat.
    Hier kann man also ebenso Programme aufrufen. Allerdings sind hier nur einfache Parameter (gepackte Dezimale und Zeichen) erlaubt da durch den Text das Format bestimmt wird.
    Also eine schöne aber eine absolut unsichere und gefährliche Sache.
    Vorteil der Deklaration ist aber z.B. bei Funktionen die Verwendung in fast jedem SQL, was du bei ActiveX eben nicht kannst.

    Beispiele findest du genug in den Handbüchern und im Forum.
    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

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    79
    Vielen Dank für die Bemühung. Gibt es einen Befehl, der zeigt welche UDF in einer Bibliothek registriert wurde, bzw. wie eine Registrierung entfernt wird?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    select * from sysprocs <= Prozeduren, SYSFUNCS = Funktionen
    where SPECIFIC_SCHEMA = 'MYLIB' <= kann man ja auch weglassen

    drop procedure xxxx
    drop function xxxx
    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

  4. #4
    Registriert seit
    Sep 2005
    Beiträge
    79
    Dann danke ich für Ihre Bemühung und schließe zunächst dieses Thema.
    So bald als möglich werde ich damit experimentieren.

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.217
    Hier ein Beispiel für die Definition eines externen Programms in einer SQL-Procedure.

    Code:
    -- Erzeugen der Prozedur:
    CREATE PROCEDURE edpgmlib/prcBVS9KF01 (
     OUT KF_REC_ID DECIMAL(15, 0) ,
     OUT KF_PFL_ID DECIMAL(3, 0) )
     LANGUAGE RPGLE
     NOT DETERMINISTIC
     NO SQL
     CALLED ON NULL INPUT
     EXTERNAL NAME 'EDPGMLIB/BVS9KF01'
     PARAMETER STYLE SQL ;
    Vielleicht hilft es ja weiter.

    Dieter

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Das dürfte schon ein Problem werden: "PARAMETER STYLE SQL".
    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

  7. #7
    Registriert seit
    Jan 2012
    Beiträge
    1.217
    Kommt darauf an, wie das RPG-Programm das weiterverarbeitet. Ich habe mir das Beispiel schnell zusammenkopiert. Aber natürlich ist "PARAMETER STYLE GENERAL" die bessere Wahl. Sorry.
    Dieter

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    PARAMETER STYLE SQL ist schon die bessere Wahl da man mehr Einfluss mit NULL-Values gewinnt.
    Aber das ist halt nicht für jeden Probanden geeignet.
    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

Similar Threads

  1. Antworten: 2
    Letzter Beitrag: 19-02-16, 11:01
  2. Wie kann man über SQL ein I5-Programm aufrufen
    By MR-BN in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 02-10-15, 16:40
  3. Rückgabeparameter bei SBMRMTCMD
    By harkne in forum NEWSboard Programmierung
    Antworten: 20
    Letzter Beitrag: 13-11-14, 13:56
  4. ILE aus /36 aufrufen
    By Norbertf in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-10-14, 21:32
  5. Batch-Programm aus RPG aufrufen?
    By hansr in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-11-02, 17:38

Berechtigungen

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