Anmelden

View Full Version : Return to Client ohne Inhalt



JGreim
27-03-19, 11:10
Schönen Mittag,

ich habe eine Prozedur erstellt in der folgendes passiert:
Prozedur -> CL -> SQLRPGLE -> Modul

Das Ergebnis wird als Return to Client ausgegeben.
Soweit so gut. Funktioniert auch.

Wenn ich das ganze statt in der Standard Datenbibliothek in der QTEMP ausgeben möchte bekomme ich aber eine leere Tabelle.

Die Änderungen im CL:
- CRTDUPOBJ OBJ(GETTESTF) FROMLIB(TESTDTA) OBJTYPE(*FILE) +
TOLIB(QTEMP) DATA(*NO)
- OVRDBF FILE(GETTESTF) TOFILE(QTEMP/GETTESTF)

Die Änderungen im RPG:
C+ DECLARE CUR1 SCROLL CURSOR WITH RETURN TO CLIENT FOR
C+ SELECT * FROM QTEMP.GETTESTF


Beim Debuggen stehen die Daten bis zum Schluss in der QTEMP.
Leider trotzdem keine "Ausgabe"...

Mit freundlichen Grüßen

Fuerchau
27-03-19, 15:23
Was sagt der SQLCODE und SQLSTATE?
Was sagt das Joblog?
Wie ist die Commit-Steuerung (set option commit=...)?

In der QTEMP kann nicht journalisiert werden, daher kann schon mal der eine oder andere SQL scheitern!

Und wieso kopierst du die Tabellen ohne Daten, DATA(*NO)?
Wie kommen die Daten in die QTEMP-Tabelle?

JGreim
27-03-19, 15:39
SQLCODE/SQLSTATE sind jeweils 0.
---------------------------------------------------
Cursor CUR1 eröffnet.
1 Ergebnismengen von Anweisung SET RESULT SETS verarbeitet.
- RETURN /* RETURN wegen Ende des CL-Programms */
1 Ergebnisgruppen sind aus Prozedur GETTEST in TESTXT verfügbar
---------------------------------------------------
Commit-Steuerung....
---------------------------------------------------
Die Tabelle wurde extra für die Ausgabe/Weiterverarbeitung erstellt
und soll keine Daten dauerhaft beinhalten.
---------------------------------------------------
Die Daten werden im SQLRPGLE gefüllt und mit einem WRITE geschrieben.

Fuerchau
27-03-19, 16:12
Wer ruft mit was den Cursor nun ab?
Du beschreibst ja nur die Sendeseite.

JGreim
28-03-19, 06:35
Die Prozedur wird mit dem "Run SQL Scripts" aufgerufen und sollte hier die Tabelle mit dem einen Datensatz anzeigen.

B.Hauser
28-03-19, 07:32
Könnte es sein, dass der Override nicht zieht, weil RPG und CL in unterschiedlichen Aktivierungsgruppen laufen?
Versuch mal den Override Scope im OVRDBF auf *CALLLVL oder *JOB zu setzen.

Birgitta

JGreim
28-03-19, 08:25
Das wars. Vielen Dank ! :)

Robi
28-03-19, 08:34
Das war meine 1. Idee, aber er spricht in seinem Code die Datei doch mit QTEMP. an!

Wofür dann der OVR?

Fuerchau
28-03-19, 15:14
Da gebe ich dir Recht.
Wenn ich direkt von QTEMP lese, brauchts keinen OVRDBF.
Vielleicht wird doch nicht QTEMP kodiert?