[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2003
    Beiträge
    290

    Systembefehl aus SQL heraus

    Hallo zusammen,

    ich weiß, es geht bestimmt, aber wie ?

    Ich möchte aus dem SQL heraus (aus RPG oder Net.Data) einen Systembefehl, z.b. CHGLIBL, absetzen bzw. durchführen lassen.

    Kann mir jemand weiterhelfen ?

    Vielen Dank im Voraus
    Peet

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.258
    Dafür gibts hier mehrere Beispiele mit QCMDEXC als SQL-Procedure:

    CALL QCMDEXC ('MyCmd', 0000000005.00000)

    Der numerische Ausdruck muss mit 10 Vorkomma und 5 Nachkommstellen genau die Länge des Kommandos enthalten.

    Sind Hochkommata im Kommando enthalten, so sind diese zu verdoppeln, aber sie zählen nicht zur Länge dazu, da SQL diese wieder entfernt.
    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 2003
    Beiträge
    290
    Vielen Dank !

    Gruß
    Peet

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.879
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Der numerische Ausdruck muss mit 10 Vorkomma und 5 Nachkommstellen genau die Länge des Kommandos enthalten.
    Das war erforderlich, als QCMDEXC noch nicht als Stored Procedure registriert war (vor Release V5R4 wenn ich mich recht erinnere). Heute ist dies nicht mehr notwendig. Die Länge sollte allerdings stimmen.

    Der folgende Aufruf wird ordnungsgemäß ausgeführt.

    Code:
    CALL QCMDEXC('Addlible Hauser', 15)
    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

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.288
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Das war erforderlich, als QCMDEXC noch nicht als Stored Procedure registriert war (vor Release V5R4 wenn ich mich recht erinnere). Heute ist dies nicht mehr notwendig. Die Länge sollte allerdings stimmen.

    Der folgende Aufruf wird ordnungsgemäß ausgeführt.

    Code:
    CALL QCMCEXC('Addlible Hauser', 15)
    Birgitta
    ... mitnichten und auch mitneffen Frau Oberlehrerin, da sind gleich mehrere Fehler, die den Erfolg vereiteln...

    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/

  6. #6
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    ...und zwar welche (außer dem Tippfehler bei QCMDEXC)?

  7. #7
    Registriert seit
    Nov 2012
    Beiträge
    51

    Schließe mich dem Wunsch an

    Lieber Dieter,
    hier bei mir funktioniert das auch.
    Bitte erhelle uns, sage uns, warum es nicht gehen kann.
    Hummeln können ja auch nicht fliegen. Gottseidank können sie auch nicht lesen. ;-)
    Danke,
    LG Toni

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    1.979
    Ich gebe Dieter recht.
    Bei mir funktioniert ein "addlible Hauser" auch nicht.

    Schließlich gibt es solch eine Lib auf den wenigsten AS/400 Systemen

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  9. #9
    Registriert seit
    Nov 2012
    Beiträge
    51

    Wenn Du eine Fehlermeldung erhältst,

    dass es keine Bibliothek Hauser gibt, und es diese Bibliothek wirklich nicht gibt, funktioniert das doch ordnungsgemäß?!
    Ich vermute etwas intellektuell Anspruchsvolleres dahinter, schließlich ist es Dieter Bender, den verbinde ich eigentlich nicht mit Kinderkram... ;-)

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.879
    Falls es irgendjemand interessieren sollte:
    QCMDEXC wurde als externe Stored Procedure in der Bibliothek QSYS2 hinterlegt.
    Die Stored Procedure hat 2 Parameter:
    1. CL-Befehl - VarChar(32000)
    2. Länge - 15,5
    Intern wird QCMDEXC aufgerufen und ausgeführt!

    Die Bibliothek QSYS2 ist im Systemteil der Bibliotheksliste hinterlegt und auch bei Verwendung von SQL Naming im Default Path, so dass ein unqualifizierter Aufruf erfolgen kann.

    Dadurch, dass das Original-Programm als Stored Procedure registiert wurde, kann es auch nach den gleichen Regeln wie jede andere Stored Procedure aufgerufen werden, d.h. die Anzahl der Parameter muss stimmen und die Datentypen der Parameter müssen zur Definition kompatibel sein.

    Wenn man natürlich QCMDEXC mit QSYS qualifiziert aufgerufen wird, funktioniert der Aufruf nicht, da an dieser Stelle das Original-Programm aufgerufen wird (und nicht die Stored Procedure!). In diesem Fall muss der zweite Parameter mit 10 Vorkomma- und 5 Nachkommastellen angegeben werden.

    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

  11. #11
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Falls es irgendjemand interessieren sollte:
    Ich finde das schon sehr interessant. Nur was mich noch viel mehr interessiert, ist was BenderD dagegen für Einwände hat, denn bei mir funktioniert der Aufruf auch völlig problemlos.

    Gibt es hier im Forum nicht jemanden, der sich immer darüber aufregt, dass andere so in Rätseln reden bzw. nur sehr spärlich mit Informationen rausrücken, so dass er seine Kristallkugel bemühen muß? Irgendwie kommt mir das hier bekannt vor.

    Gruß,
    KM

  12. #12
    Registriert seit
    Nov 2012
    Beiträge
    51

    Schön gesagt.

    Vielen Dank an Birgitta, wie immer sind ihre Ausführungen sehr lehrreich und bringen uns alle ein Stück weiter, besseren Code zu produzieren.
    Das schafft Dieter auch, aber man muss es ihm meistens ein bisschen aus der Nase ziehen, er ist vom Naturell her eher kein Messias, der andere überzeugen will. Aber er hat meistens eine fachlich fundierte Meinung, warum man es vielleicht nicht so und so machen sollte. Nur geizt er ein bisschen damit. ;-)

Similar Threads

  1. SQL Sensitiver Cursor Probleme
    By Rincewind in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-12-06, 13:58
  2. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  3. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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