Hallo,

sieht ganz danach aus, dass im Callstack oberhalb deines Programmes ein Programm sitzt, das einen Cursur C1 verwendet, der von deinem Commit platt gemacht wird und dann den Folgefehler auslöst. In deinem Programm ist der Commit überflüssig um den close oder nicht close brauchst du dich nicht zu kümmern, du sperrst keine Ressourcen. Alternativ wäre möglich deinem Programm eine eigene Activation Group zu verpassen.

mfg

Dieter Bender
Zitat Zitat von juniorprog
hallo @ alle.

ich habe ein problem und wende mich mal vertrauensvoll an euch.
wir setzen ein rpg programm ein, indem embedded sql drin ist um zu prüfen ob daten innerhalb eines variablen abfragezeitraums liegen:

C/EXEC SQL
C+ SELECT Feld1, Feld2 INTO :#FELD1, :#FELD2 FROM
C+ BIBLIOTHEK/DATEI WHERE FELDX=:#FELDX and FELDY=:#FELDY and
C+ VONDATUM<=:#VODT and BISDATUM>=:#BISDT
C/END-EXEC

Hiernach frag ich dann den SQLCOD ab um zu sehen ob der =0 ist, verarbeite die Rückkehrfelder
und anschliessend wird mit commit das ganze wieder freigegeben

C/EXEC SQL
C+ COMMIT
C/END-EXEC

Dieser Aufruf wird in einer Plausibilitätsprüfung eines Dialogprogramms aufgerufen. Nach dem beenden des Programms erhalte ich folgende Fehlermeldung: Cursor C1 nicht geöffnet. Ich nutze aber gar keinen Cursor C1, somit kann ich den auch nicht mit Close schliessen. Kann mir jemand sagen woran das liegen koennte. Denn laut meinen unterlagen muss ich doch nur einen Zeiger definieren wenn ich keine into felder habe??? danke schonmal im voraus!