-
Programm 'QSQROUTE' - Unklarer "ückkehr-Status"
Guten Tag
Ich habe folgendes Problem mit einem embedded SQL in RPG:
Im Programm habe ich den nachstehenden Befehl, syntaktisch korrekt definiert.
SELECT ADLPLN * 100 ,ADLPBR * 100 ,ADLPHO * 100 INTO :LP_lang , :LP_breit , :LP_hoch FROM LO1010 WHERE ADFIRM = 270 and ADLAHA = :lp_LAHA and ADLPS1 = :lp_LPS1 and ADLPS2 = :lp_LPS2 and ADLPS3 =
:lp_LPS3 and ADLPS4 = :lp_LPS4
In der Mehrheit der Fälle (!) erfolgt die Ausführung korrekt. In einem Fall (mit DBG festgestellt) ist der Inhalt im Feld SQL_00068 = "0", d.h. die im Select definierten Resultatwerte werden nicht aktualisiert.
Kann mir jemand sagen, unter welchen Bedingungen der Wert im Feld SQL_00068 den Wert '0' bekommt. Ich kann den Fehler einfach nicht nachvollziehen.
Besten Dank für eine Erklärung.
Grüsse Roman
Hier der Debugging-Code:
553 C* :LP_breit , :LP_hoch FROM LO1010 WHERE ADFIRM = 270 and A
554 C* :lp_LAHA and ADLPS1 = :lp_LPS1 and ADLPS2 = :lp_LPS2 and
555 C* :lp_LPS3 and ADLPS4 = :lp_LPS4
556 C*END-EXEC
557 C EVAL SQL_00070 = LP_LAHA
558 C EVAL SQL_00071 = LP_LPS1
559 C EVAL SQL_00072 = LP_LPS2
560 C EVAL SQL_00073 = LP_LPS3
561 C EVAL SQL_00074 = LP_LPS4
562 C Z-ADD -4 SQLER6
563 C CALL 'QSQROUTE'
564 C PARM SQLCA
565 C PARM SQL_00065
566 C SQL_00068 IFEQ '1'
567 C EVAL LP_LANG = SQL_00075
568 C EVAL LP_BREIT = SQL_00076
569 C EVAL LP_HOCH = SQL_00077
570 C END
571 *
-
Wenn der Select mehr ale eine Zeile liefert, können die Ergebnisse nicht abgerufen werden da hier ohne Cursor gearbeitet wird.
Diese direkte Form des Select's ist nur erlaubt wenn wirklich nur 1 Zeile als Ergebnis kommen kann.
Prüfe an Hand deiner Where-Bedingung, ob da nicht mehrere Ergebnissätze vorliegen können. In diesem Fall musst du halt doch mit Declare Cursor, Open, Fetch, Close arbeiten.
PS:
Prüfe auch SCLCOD und SQLSTA sowie das Joblog !
-
Besten Dank für die prompte Antwort.
Also die Abfrage ist so definiert, dass ausschliesslich ein Satz gefunden wird.
Beim Untersuchen des Logs habe ich allerdings folgende Meldung festgestellt: "Zeile für SELECT nicht gefunden."
Dies erklärt mir den "Status 0"
Den gleichen Befehl habe ich (ohne Hostvariabeln) unter STRSQL getestet. Dabei wurde der gesuchte Satz gefunden. Ich habe jene Werte verwendet, die ich mittels Abfrage innerhalb des Debugging erhalten habe.
-
Alles Ok! Danke für die Hinweise
Gruss Roman
-
Die, vom Pre-Compiler generierten Felder sollte man auf keinen Fall auswerten. Für eine korrekte Auswertung von Fehlern sollte man auf die SQLCA-Struktur und das Feld SQLCOD zugreifen. Nur diese enthalten weitere Informationen welcher Fehler denn vorliegt.
PS:
Woran lags denn nun ?
-
 Zitat von Fuerchau
Die, vom Pre-Compiler generierten Felder sollte man auf keinen Fall auswerten. Für eine korrekte Auswertung von Fehlern sollte man auf die SQLCA-Struktur und das Feld SQLCOD zugreifen. Nur diese enthalten weitere Informationen welcher Fehler denn vorliegt.
PS:
Woran lags denn nun ?
Nein, nein - über die generierten Felder bin ich nur auf die Fehlersituation gestossen - ich wollte diese natürlich nicht auswerten.
Zur Ursache: Peinlich, peinlich - ich wollte es eigentlich verheimlichen - ein eigentlicher Anfängerfehler der mir nicht hätte unterlaufen dürfen: Das Pgm verarbeitete eine (ältere) Datei die in der LIBL vorgelagert war und eben den gesuchten Satz nicht enthielt. Meine Tests in der SQL-Umgebung bezogen sich auf die aktuelle Datei...
-
ach, das ist doch noch harmlos.
ich habe es schon geschaft, auf der kundenmaschine daten platt zu machen. hatte wieder mal 4-5 sitzungen offen und war auf verschiedene systemen(unser entw.sys und 2 kundensys.). dann mal eben ein CLRPFM und beim enter (bzw NACH dem enter) gemerkt das es nicht mein system war .
hat mir ne nachtschicht eingebracht, um alles wieder zu bekommen ..
schöne nacht noch
ronald
Similar Threads
-
By Souljumper in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 13-05-09, 19:50
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By steven_r in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 19-10-06, 09:12
-
By codierknecht in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 04-07-06, 11:52
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks