[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2001
    Beiträge
    56

    STRQMRQY SQLCODE -104

    Hallo zusammen,

    habe hier ein Problem mit STRQMRQY. Interaktiv funktioniert mein CL in dem STRQMQRY aufgerufen wird einwandfrei. Wird dieses CL über JOBSCDE gestartet bekomme ich den Fehler QWM1201 mit den Hinweis auf SQLCODE -104. Token FORTMELDNR ungültig.

    Warum funktioniert es aber interaktiv? Irgendwie verstehe da offensichtlich etwas falsch. Es wird doch ein und dasselbe *QMQRY verwendet, oder nicht?

    Für euere Hilfe wäre ich dankbar.

    LG, Chera

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Wie sieht die QMQRY denn aus? Und wie sieht der STRQMQRY-Befehl aus? Sind da Parameter mit dabei?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich denke mal, die Parameter an das CLP sind im Dialog anders als über JOBSCDE.

    Beachte die Deklaration der Variablen und was du dann als Parameter an QMQRY übergibst.
    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
    Jul 2001
    Beiträge
    56
    Also wie bereits erwähnt, es wird das gleiche Programm einmal interaktiv und über JOBSCDE aufgerufen.

    Der Aufruf wird ohne Parameter gemacht, die Parameter werden im aufgerufenen gesetzt und in diesem Programm wird dann ein weiteres CL aufgerufen in dem der Fehler beim STRQMQRY auftritt wenn das Programm als Stapeljob ausgeführt wird.

    Beim STRQMQRY wird ein Parameter mit SETVAR gesetzt.

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hast Du auch daran gedacht die alphanumerischen und Datums-Variablen vor dem Aufruf des STRQMQRY in Hochkommata zu setzen?

    siehe: http://newsolutions.de/forum-systemi...im-runqry.html

    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
    Jul 2001
    Beiträge
    56
    Hallo Brigitta,

    wenn ich den übergebenen Parameter in Hochkomma setzte erhalte ich folgende Fehlermeldung:

    Operanden des Vergleichsoperators = nicht verträglich.
    Befehl RUN für Objekt QUERY mit SQLCODE -401 fehlgeschlagen.
    Befehl RUN QUERY aufgrund eines Fehlers beendet.
    Befehl STRQMQRY fehlgeschlagen.
    Funktionsprüfung. QWM2701 nicht überwacht durch EDINCO01C bei Anweisung
    0000001703, Instruktion X'0000'.
    QWM2701 von Prozedur EDINCO01C empfangen. (C D I R)

    Ohne die Hochkomma läuft es interkativ durch, im Stapel jedoch nicht. Wie gesagt, es wird doch immer das gleiche Query aufgerufen. Die Parameter im Query sind beide numerisch.

    WHERE BEWEGDATUM = &AWDAT
    AND FORTMELDNR = 300

    Chera

  7. #7
    Registriert seit
    Jul 2001
    Beiträge
    56
    Jetzt wird es aber komisch. Es wird nicht mein übergebener Parameter reklamiert sonder einer der im Query fix abgefragt wird:

    WHERE BEWEGDATUM = &AWDAT
    AND FORTMELDNR = 300

    So sieht das Joblog aus:

    Job 092729/BENUTZER/SBMJOB im Subsystem QBATCH in QSYS am 10.01.14 um
    08:00:53 gestartet. Job im System am 10.01.14 um 08:00:53. angekommen.
    Job 092729/BENUTZER/SBMJOB übergeben.
    CALL PGM(TEST/EDINCO00C)
    Token FORTMELDNR ungültig. Gültige Token: FOR WITH FETCH ORDER UNION
    OPTIMIZE.
    Befehl RUN für Objekt QUERY mit SQLCODE -104 fehlgeschlagen.
    Befehl RUN QUERY aufgrund eines Fehlers beendet.
    Befehl STRQMQRY fehlgeschlagen.
    Funktionsprüfung. QWM2701 nicht überwacht durch EDINCO01C bei Anweisung
    0000001703, Instruktion X'0000'.
    QWM2701 von Prozedur EDINCO01C empfangen. (C D I R)

    Nun bin ich ratlos, hat irgendwer eine Idee an was es liegen kann?

    Chera

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von chera Beitrag anzeigen
    Token FORTMELDNR ungültig. Gültige Token: FOR WITH FETCH ORDER UNION
    OPTIMIZE.
    Befehl RUN für Objekt QUERY mit SQLCODE -104 fehlgeschlagen.

    Nun bin ich ratlos, hat irgendwer eine Idee an was es liegen kann?

    Chera
    Mit den spärlichen Informationen, die Du uns herüberwachsen lässt, können wir ohne Glaskugel auch nichts sagen.

    SQL -104 sagt, dass das Statement nicht in Ordnung ist und zwar vor FORTMELDNR (siehe Fehlermeldung). Also solltest Du SQL-Statement prüfen.

    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

  9. #9
    Registriert seit
    Jul 2001
    Beiträge
    56
    Sorry, wollte eigentlich nicht so viel hier reinstellen. Hier nun die restlichen Informationen. Das CL welches das Datum 8-stellig bekommt *char JJJJMMTT, im Query ist es numerisch:

    PGM PARM(&P_FIR &P_AWDAT8)

    DCL VAR(&P_FIR) TYPE(*CHAR) LEN(1)
    DCL VAR(&P_AWDAT8) TYPE(*CHAR) LEN(8)
    DCL VAR(&V_NBRRCD1) TYPE(*DEC) LEN(10)
    DCL VAR(&V_NBRRCD2) TYPE(*DEC) LEN(10)

    /* Arbeitsdateien aus täglichen Bewegungen erstellen */
    STRQMQRY QMQRY(GADPP100) OUTPUT(*OUTFILE) +
    QMFORM(*QMQRY) OUTFILE(QTEMP/TMP_PP100) +
    ALWQRYDFN(*YES) SETVAR((AWDAT &P_AWDAT8))

    STRQMQRY QMQRY(GADVZ330) OUTPUT(*OUTFILE) +
    QMFORM(*QMQRY) OUTFILE(QTEMP/TMP_VZ330) +
    ALWQRYDFN(*YES) SETVAR((AWDAT &P_AWDAT8))

    hier das Query nach RTVQMQRY in dem ich den Parameter geändert habe und danach wieder mit CRTQMQRY erstellt habe:

    H QM4 05 Q 01 E V W E R 01 03 13/10/01 06:49
    V 1001 050 Bewegungssätze GADPP100 (Status 300)
    V 5001 004 *HEX
    SELECT
    ALL FIRMENNR, WOCHENNR, LFDNRPAUFT, POSITIONNR, FORTMELDNR, MELDEDATUM,
    MELDSTANDO, MELDPRODST, BANDNRMELD, HINWEISTXT, SACHBEARKZ,
    STATUSKENN, BEWEGDATUM, BEWEGNUMME
    FROM SC4D1MAN/GADPP100 T01
    WHERE BEWEGDATUM = &AWDAT
    AND FORTMELDNR = 300
    ORDER BY FIRMENNR ASC, WOCHENNR ASC, LFDNRPAUFT ASC, POSITIONNR ASC

    Was brauchst du noch? Für mich stellt sich die Frage warum funktioniert es interaktiv und nicht als Stapeljob. Sollte mit dem Parameter etwas nicht stimmen, müsste der Fehler doch bei beiden Varianten kommen.

    Chera

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Bau mal einen DMPCLPGM vor dem STRQMQRY ein und sieh dir in der erstellen Spooldatei mal den Inhalt der Variablen P_AWDAT8 an. Vielleicht ist die ja leer.

  11. #11
    Registriert seit
    Jul 2001
    Beiträge
    56
    Danke für den Hinweis. Die Variable ist tatsächlich leer. Jetzt weiß ich zumindest wo ich weiter suchen muss. Vielen Dank!

    Danke an alle, oft sieht man vor lauter Wald die Bäume nicht ;-)

    Chera

Similar Threads

  1. Markpoint MK 104
    By Kaufmann in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 24-10-09, 14:34
  2. SQLCODE -303
    By I0N in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 27-11-06, 10:28
  3. SQLcode -811, SQLstate 21000
    By deni87991 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 26-10-06, 10:35
  4. MP 104 Compact Mobile
    By Pia in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 10-09-02, 11:30

Berechtigungen

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