[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.392
    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/

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

  3. #3
    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

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    2.049
    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!)

  5. #5
    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... ;-)

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.943
    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 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.017
    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

  8. #8
    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. ;-)

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.793
    Mich stört die Definition "VarChar(32000)
    ", da QCMDEXC direkt VarChar nicht unterstützt sondern nur CHAR.

    Ich habe mir schon seit langem per ODBC einen "CREATE PROCEDURE QCMDEXC ..." zusammengebastelt der auch immer funktioniert hat.

    Nun kommt es beim ODBC leider auf die Verwendung des Treibers an (über ADO-Objekte):
    Beim MSDASQL (Standard bei ODBC-Verbindungen) reicht einfach eine "CALL XXX" um im ODBC-Serverjob ausgeführt zu werden.
    Verwendet man (leider) den IBMDA400 bzw. den IBMDASQL-Provider ist ein Call in geschweifte Klammern zu setzen.
    Dabei gibt es 2 Arten (wobei ich nie weiß, welcher denn nun welcher ist):

    "{CALL XXX ...}"
    "{{CALL XXX ...}}"

    Der eine Call wird als SQL-Call ausgeführt, der andere als RMTCMD und damit eben nicht im ODBC-Job!
    Lässt man die Klammern weg, fügt der Provider einfach welche ein und macht wahrscheinlich den RMTCMD.
    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. SQL Sensitiver Cursor Probleme
    By Rincewind in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-12-06, 14:58
  2. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 11:15
  3. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 15:53
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 15:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43

Berechtigungen

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