[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Sorry, ich hatte das Wörtchen "Condition" in meinem Beispiel vergessen. Das kommt davon wenn man irgendwas aus dem Kopf tippt ohne Zugriff auf eine Maschine.

    @JIM
    SQL ist nicht SQL (trotz Standard) und DB2 ist auch nicht DB2!
    Die DB2s für Linunx, Unix, Windows und z-Series funktionieren in einigen Bereichen anders als die DB2 UDB for i, einfach deshalb, weil die DB2 UDB for i direkt im Betriebssystem integriert ist.

    So können z.B. beim GET DIAGNOSTICS auf der AS/400 (oder wie auch immer) wesentlich mehr Informationen ausgegeben werden und für Condition-Informationen schreibt man auch CONDITION (was ich im obigen Beispiel vergessen hatte) und nicht EXCEPTION!

    Aus diesem Grund ist es besser, sich die SQL Referenz für die DB2 UDB for i zur Brust zu nehmen.
    Hier ist der Link zu GET DIAGNOSTICS auf der AS/400:
    Get Diagnostics

    Die 1 ist im embedded SQL einfach eine beliebige Zahl (oder auch Variable), die für die Syntax bei Condition Informationen erforderlich ist.
    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

  2. #2
    Registriert seit
    May 2005
    Beiträge
    103
    Guten Morgen Birgitta,

    vielen Dank für die prompte und hilfreiche Antwort - wie gewohnt ;-)

    Die Befehlsreferenz zu GET DIAGNOSTICS habe ich mir zwar schon angeschaut, aber die richtige Syntax hat sich mir daraus nicht erschlossen.

    Mein Statement sieht nun folgendermaßen aus:
    Get current Diagnostics CONDITION 1 :SQLMSG = MESSAGE_TEXT;

    Und das Beste ist: ES FUNKTIONIERT AUCH NOCH!!! :-)

    Habe zuvor mittels API QMHRTVM den SQL-Code aus QSQLMSG ausgelesen, was gegenüber der Get Diagnostics-Funktion natürlich viel umständlicher ist und dazu auch bei z. B. SQL0100 nur die Meldung "Zeile für &1 nicht gefunden" zurückgemeldet hat. Nun bekomme ich folgerichtig "Zeile für INSERT nicht gefunden"

    Vielen Dank nochmals!!

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Habe zuvor mittels API QMHRTVM den SQL-Code aus QSQLMSG ausgelesen, was gegenüber der Get Diagnostics-Funktion natürlich viel umständlicher ist und dazu auch bei z. B. SQL0100 nur die Meldung "Zeile für &1 nicht gefunden" zurückgemeldet hat. Nun bekomme ich folgerichtig "Zeile für INSERT nicht gefunden"
    Mit QMHRTVM bzw. RtvMsg wäre das auch gegangen, man muss lediglich wissen, dass die variablen Message-Texte (MSGDTA) im Feld SQLERM in der SQLCA hinterlegt sind.

    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
    May 2005
    Beiträge
    103
    Schon wieder was dazu gelernt... so langsam wird es wohl Zeit für den Feierabend ;-)

    Dass ich das Feld MSGDTA mit Variablen bestücken muss, habe ich aus der Bef.Ref. ersehen, jedoch nicht, woher ich die SQL-Variablen herbekomme.
    Danke für den Hinweis!!

Similar Threads

  1. Embedded SQL in VARPG
    By Squall in forum NEWSboard Programmierung
    Antworten: 23
    Letzter Beitrag: 18-10-06, 13:01
  2. Einfache Abfrage in COBOL/400 mit EXEC SQL
    By AS400-Anfänger in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 27-06-06, 14:18
  3. RPG mit Embedded SQL, JOIN ..
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 18-06-06, 13:14
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43
  5. Character verbinden in Embedded SQL
    By e_sichert in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 03-05-06, 11:47

Berechtigungen

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