[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Mar 2004
    Beiträge
    33

    strqmqry und Parameter/Variable

    Hallo
    Hab das Problem bei der Übergabe von Werten in die Abfrage.

    Die Where Klausel sieht so aus:

    WHERE (RDat > date(&Rechnungsdatum))
    AND (Route = char(&Routenr))

    Das Feld Route ist als 2-stelliges Alphafeld definiert. Es enthält Werte wie z.B. 10, 11, a2 und auch 07 (mit der Null). Wenn ich die 10 eigebe funktioniert die Abfrage, Bei 07 geht es nicht. Wie kann ich die führende Null mit in die Variable schreiben, evtl. mit Cast? Hab auch schon mehrere Varianten mit '&Routenr' versucht, leider ohne Erfolg.

    Marc

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die Funktion "char" erlaubt ja alle Inhalte, also auch Zeichenfolgen.

    Übergebe also einfach eine Zeichenfolge
    ... ('''' *cat &myvar *cat '''') ...
    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
    Mar 2004
    Beiträge
    33
    Hallo Fuerchau.
    Hab deinen Tipp gerade getestet.
    Leider hat es nicht geklappt, wenn ich im QM die Syntaxprüfung mache kommt folgender Code:

    ... (Route = ('''' *cat 07 *cat '''')
    Wenn die Abfrage ausgeführt wird kommt die Meldung:
    Token 07 ungültig. Gültige Token: ,.

    Ich vermute das *cat wird nicht richtig interpretiert.

    Marc

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das *cat ist Bestandteil deines CLP's!

    Du kannst natürlich im SQL auch "... char('&routenr') ..." definieren und übergibst &routenr ohne Hochkomma.
    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

  5. #5
    Registriert seit
    Mar 2004
    Beiträge
    33
    Hab die Ausführung zum Testen ohne CL direkt im Query Manager gemacht. Daran wird es wohl liegen. Oder geht das auch ohne CL?

    Marc

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    über Test in QM-Query geht das natürlich auch.
    Gib in die Nachricht einfach z.B. 07 ein.
    QM-Query übernimmt erst mal alles als Zeichen und SQL entscheidet dann, ob Zeichen oder Wert.
    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
    Nov 2003
    Beiträge
    2.307
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Du kannst natürlich im SQL auch "... char('&routenr') ..." definieren und übergibst &routenr ohne Hochkomma.
    So geht das leider nicht, da dann &routenr nicht als Variable erkannt wird.

    Marc, probier's mal mit DIGITS(ZONED(&Routenr, 2)) anstelle von CHAR(&Routenr)

  8. #8
    Registriert seit
    Aug 2003
    Beiträge
    163
    Ich hab ein ähnliches Problem so gelöst:

    right('00' concat char(&VARIABLE), 2)

    So viele 0en im String angegeben, wie ich Zeichen in der right - Funktion benötige, dann wird auch eine übergebene 0 richtig verarbeitet.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    ZONED funktioniert aber bei alpha nicht!
    Also bleibt nur:

    Route = &Routenr

    Die benötigten Hochkommata sind dann direkt mit einzugeben. Die Funktion char kannst du dir sparen.
    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

  10. #10
    Registriert seit
    Mar 2004
    Beiträge
    33
    Das war´s. Danke für eure Hilfe. Beim nächsten Versuch werd ich das ganze mal mit einem CL testen.
    Nur hab ich doch noch einen Fehler in der Datumsabfrage. Es kommt zwar kein Fehler des SQL-Codes, aber die Abfrage > Datum wird einfach nicht beachtet. Es werden alle vorhanden Datensätze dieser Route aufgelistet.
    In der Hoffnung auf einen weiteren Tipp.

    Marc

  11. #11
    Registriert seit
    Mar 2004
    Beiträge
    33
    Mein Letztes Posting war eigentlich an Pikachu gerichtet. Mit der DIGITS(ZONED(&Routenr, 2)) Zeile war das Problem behoben.
    Bei route = ('&var') hat er immer nach der route &var gesucht und nicht nach dem Wert (z.B.: 07) den ich dieser Variable gegeben habe.

    Marc

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Allerdings kommst du bei "a2" auf einen Fehler, da dies nicht numerisch ist!!!

    Die Funktion Date(...) verlangt ein Datum
    a) im Jobformat z.b. 'TT.MM.JJ', 'TT.MM.JJJJ'
    b) im ISO-Format 'JJJJ-MM-TT'

    Hochkomma einschließlich !

    Ist dein RDat auch von Typ DATE ?
    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. STRQMQRY in einem CL-Programm/ FEHLER QWM2701
    By polo in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 16-10-06, 12:31
  2. STRQMQRY Prompt
    By Elei in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 20-06-06, 13:51
  3. Antworten: 2
    Letzter Beitrag: 02-06-05, 13:48
  4. Timestamp als Parameter in STRQMQRY
    By Jenne in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 23-03-05, 09:50
  5. Ergebnisfelder mit STRQMQRY
    By Jenne in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 08-03-05, 14:12

Berechtigungen

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