View Full Version : SQL Prozedur mit Cursor als Rückgabe (Embedded SQL)
Welchen CALL meinst du denn?
Hast du Birgittas Vorschlag mal angenommen und den Call auf die Prozedur von ACS oder falls noch nicht installiert mit Operations Navigator durchgeführt?
Kann dir nicht derjenige, der die Prozedur zur Verfügung stellt, ein Beispiel für das Erhalten der Daten bereitstellen?
Auch wenn es ungern gesehen wird:
Klappt der Aufruf mit STRSQL und du siehst Daten?
Wenn Ja, dann gibts noch die Umgehung mit QMQRY.
Da kannst du die Daten der Prozedur in eine Datei ausgeben und dann verarzten.
Das tut zwar manchen in den Augen weh, mag aber funktionieren.
Aktuell funktioniert es soweit dass ich was zurück bekomme. Probleme machen noch die Null-Felder ich muss noch die Null-Felder-Variablen empfangen.
Mit Einzelfelder hatte ich da bisher keine Probleme jetzt bekomme ich aber eine DS zurück
d DsWR ds
d Row_Key 250
d Commission_Number...
d 250
d Commission_Number_Year...
d 250
d Vin 250
d Invoice_Number...
d 250
Wie muss ich die Null-Variablen definieren ?
als eigene DS mit je einem Null-Feld je Feld oder muss ich die einzelenen Nullfelder in die gleiche DS hinter die Felder machen ?
Du must eine Datenstruktur definieren mit sovielen Elementen wie Spalten und diese Feldgruppe dann nach der Datenstruktur getrennt durch ein Blank angeben.
Birgitta
Ich habs gefunden. Es funktioniert jetzt alles.
Für alle die es interessiert. Nachfolgend meine Quellenzusammenfassung
d rsWR s sqltype(result_set_locator)
d DsWR ds
d Row_Key 250
d Commission_Number...
d 250
d Commission_Number_Year...
d 250
d Vin 250
d Invoice_Number...
d 250
d Invoice_Date...
d 250
d Amount 250
d Currency 250
d Invoicing_Dealer...
d 250
d Sales_Category...
d 250
d CDC_Valid_From...
d 9 0
d CDC_DelFrom...
d 9 0
d myNulls s 5i 0 dim(12)
************************************************** *************************
** Hauptprogramm
************************************************** *************************
c/exec sql
c+ call EXP.P_REQUEST_SST('NCONS', 'XXX', 'VERSAND',
c+ 0, 0, '', 0, 0)
c/end-exec
c/exec sql
c+ ASSOCIATE RESULT SET LOCATOR(:rsWR) with specific procedure
c+ P_REQUEST_SST
c/end-exec
c/exec sql
c+ ALLOCATE cWR CURSOR FOR RESULT SET :rsWR
c/end-exec
c do *hival
c/exec sql
c+ FETCH NEXT FROM cWR into :DsWR:myNulls
c/end-exec
c if SqlCod = 100 or SqlCod < *zeros
c leave
c endif
**
c enddo
c/exec sql
c+ CLOSE cWR
c/end-exec
**
c eval *inlr = *on
An die Prozedur selbst komme ich leider nicht ran. Aber so wie oben funktioniert es im RPG
Vielen Dank an alle für die Unterstützung