[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Ein CLP kann keine TABLE zurückgeben sondern halt nur einen Wert.
    Eine TABLE geht nur mittles RPGLE und einer DS.
    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
    Jan 2008
    Beiträge
    90
    Hallo!

    Ja, klar, hab das so vom SQL-Referece-Manual übernommen.

    Ich will eigentlich nur wissen, wie in einer SQL-Abfrage in einem Trigger der Job ermittelt werden kann. Genau so wie es im ersten Beitrag des Threads gefragt wird.

    Danke,
    Günter

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Heißt das, dass Du einen SQL Trigger hast, in dem Du den aktuellen Job-Namen und die Job-Nr. benutzen willst?

    In diesem Fall würde ich anstatt einer Funktion eine Stored Procedure schreiben, die dann über den SQL-Befehl CALL aufgerufen wird.

    Eine Funktion zu schreiben ist mit CL etwas komplexer, da CL zum einen selber keine Rückgabe-Werte unterstützt und zum anderen bei Parametertyp DB2SQL ein Wust von zusätzlichen Parametern definiert werden muss.

    PHP-Code:
    CREATE PROCEDURE MYSCHEMA/GETJOBQUAL 
        
    OUT POUTJOB CHAR(17)) 
        
    LANGUAGE CL 
        SPECIFIC MYSCHEMA
    /GETJOBQUAL 
        DETERMINISTIC 
        NO SQL 
        CALLED ON NULL INPUT 
        EXTERNAL NAME 
    'MYSCHEMA/GETJOBQUAL ' 
        
    PARAMETER STYLE GENERAL 
    SQL Trigger:
    PHP-Code:
    ...
    Begin
       
    Declare CurrJob Char(17);
       
    Call GetJobQual(CurrJob);
    ...
    End 
    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

  4. #4
    Registriert seit
    Jan 2008
    Beiträge
    90
    Hallo!

    Danke, ich merke schon, das führt zu nichts.

    Wir haben hier das Problem, daß aus einer Tabelle "von niemanden" Daten gelöscht werden.
    Also muß es ein Batch-Job sein (Schnittstelle, etc.).
    Dazu habe ich einen Trigger auf die Datei gelegt, die die Daten beim Löschen in eine andere Tabelle wegkopiert und zusätzliche Infos, wie Jobname, JobNr, Benutzer und genaue Uhrzeit protokolliert.

    Bis auf die Jobattribute ist alles fertig.

    Es scheint mir aber der Aufwand dafür nicht in der Relation zu stehen, jetzt einen Exkurs in die Weiten von PHP, etc. zu machen, nur um für etwa eine Woche den Trigger laufen zu lassen. Denn dann dürfte das Problem behoben sein.

    Da ja die genaue Zeit bekannt ist, werde ich einfach ins Joblog schauen und dort suchen, was da gelaufen ist.

    Nochmal Danke,
    Günter

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    ich verstehe ehrlich gesagt Dein Problem nicht!
    Du hast noch nicht einmal die Frage beantwortet, ob es sich um einen SQL oder externen Trigger handelt!

    Warum muss es unbedingt eine Funktion sein?!

    Was spricht dagegen das CL als Stored Procedure zu registrieren (den CREATE PROCEDURE-Befehl habe ich im letzten Post angegeben), in Deinem Trigger über einen CALL aufzurufen (ebenfalls im letzten Post angegeben) und das Ergebnis, das Du ja als Output Parameter zurückbekommst in den nächsten Datensatz (der Insert fehlt im Post) zu schreiben.

    ... und glaub' mir das geht! Genau so funktioniert es in unseren SQL Triggern!

    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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.379
    STRJRNPF ist dein Freund
    D*B
    PS: wieder mal ein instruktives Beispiel, dass man sein Problem schildern sollte...

    Zitat Zitat von gue_br Beitrag anzeigen
    Hallo!

    Danke, ich merke schon, das führt zu nichts.

    Wir haben hier das Problem, daß aus einer Tabelle "von niemanden" Daten gelöscht werden.
    Also muß es ein Batch-Job sein (Schnittstelle, etc.).
    Dazu habe ich einen Trigger auf die Datei gelegt, die die Daten beim Löschen in eine andere Tabelle wegkopiert und zusätzliche Infos, wie Jobname, JobNr, Benutzer und genaue Uhrzeit protokolliert.

    Bis auf die Jobattribute ist alles fertig.

    Es scheint mir aber der Aufwand dafür nicht in der Relation zu stehen, jetzt einen Exkurs in die Weiten von PHP, etc. zu machen, nur um für etwa eine Woche den Trigger laufen zu lassen. Denn dann dürfte das Problem behoben sein.

    Da ja die genaue Zeit bekannt ist, werde ich einfach ins Joblog schauen und dort suchen, was da gelaufen ist.

    Nochmal Danke,
    Günter
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Jan 2008
    Beiträge
    90
    Danke für die Hilfe

    Günter

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 11:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 15:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 12:04
  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
  •