[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    444

    Embedded SQL - Typenproblem

    Hallo zusammen,

    ich führe nachfolgendes SQL aus, welches mir die offenen Meldungen in der QSYSOPR zurück geben soll

    SELECT From_Job, Message_Key, Message_Timestamp FROM
    qsys2.message_queue_info t1 WHERE t1.message_queue_name = 'QSYSOPR'
    and t1.message_type = 'INQUIRY' and not exists (select * from
    qsys2.message_queue_info as t2 where t2.message_queue_name =
    'QSYSOPR' and t2.associated_message_key = t1.message_key );

    Message_key ist varbinary(4)

    Mein FETCH sieht wie folgt aus:

    c/exec sql
    c+ fetch next from c_msg into
    c+ :Sql_Job :w@NullJob,
    c+ :Sql_MsgKey :w@NullMsgKey,
    c+ :Sql_MsgTS :w@NullMsgTS
    c/end-exec


    Wie muss ich die Variable Sql_MsgKey im RPG definieren damit beim FETCH nicht der Fehler "Variable SQL_MSGKEY nicht kompatibel oder Wert zu lang." kommt ?

    Viele Grüße Harald

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    393
    das kannst du doch in der Umwandlungsliste für Message_key sehen!?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    dcl-s Sql_MsgKey varchar(4) ccsid(*hex);

    D Sql_MsgKey 4 varying ccsid(*hex)

    Wobei der MsgKey ja eigentlich nicht varying ist sondern immer 4-bytes Hex.
    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
    May 2004
    Beiträge
    444
    Das mit der Umwandlungsliste weiß ich nicht.
    Ich glaube er nimmt als Definition die Definition des Ergebnisfeldes wie dieses definiert ist.
    In meiner Umwandlungsliste ist die Defnition wie folgt
    D SQL_00013 157 166A CCSID(*JOBRUNMIX) SQL_MSGKEY

    Weiter unten im Programm

    SQL_MSGKEY = SQL_00013;

    Die Definition zeigt 10A, so habe ich SQL_MSGKEY definiert, also nicht wirklich die Länge aus dem View

    Ich probier das mal von Herrn Fuerchau. Im Moment habe ich es mit char(Message_Key) gelöst. Ich kann es dann zwar nicht lesen, ist aber nicht so schlimm, da der Zugriff über char(Messag_Key) trotzdem erfolgreich ist.

    Vielen Dank an alle

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Der Message-Key ist letztlich ein 4-byte Integer-Wert, der allerdings auch in den API's bereits immer 4-Byte CHAR war (z.B. RCVMSG-Befehl).
    Wichtig ist eben, dass für den Wert keine Codewandlung durchgeführt wird, was bei einer Umwandlungsfunktion Char() durchaus passieren könnte.
    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. ILERPG und embedded SQL
    By TheDevil in forum NEWSboard Programmierung
    Antworten: 22
    Letzter Beitrag: 16-02-16, 08:11
  2. Statisches Embedded SQL mit IN
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 24-08-15, 13:05
  3. MSG aus embedded SQL
    By malzusrex in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 02-06-15, 11:26
  4. EMBEDDED SQL in RPG
    By Ludger Muhmann in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-07-02, 09:49
  5. Embedded SQL
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 12-10-01, 09:47

Berechtigungen

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