DBIF_INCL_INVALID_CURSOR is an ABAP runtime error which you may come across when using or developing within an SAP system. See below for the standard details explaining what it means and how you can avoid or fix this runtime error.
Short Dump Classification: K - No Error
You can view further information about a runtme error by using transaction code ST22 which will show you this and all runtime erros that have happen in your SAP system.
Also check out the Comments section below to view or add related contributions and example screen shots.
1. If the error occurs only in debugging:
Repeat the test that caused the error outside debugging mode. By doing
this, you regenerate all the programs and screens required for the run
and update them on the database, if necessary. You thereby eliminate
one possible cause of the error.
If the error persists, it could be that the number of processes
available for debugging has been exceeded. This is often due to a
temporary bottleneck caused by too many users working in the debugging
facility at the same time. If this bottleneck occurs frequently, you
should check whether it is possible to make more processes available
for debugging in this system.
2. If the error occurs outside debugging:
The problem cannot be resolved without correcting the application
program.
The statements MESSAGE, COMMIT WORK, ROLLBACK WORK, CALL SCREEN,
BREAK-POINT, WAIT, CALL FUNCTION ... DESTINATION, CALL FUNCTION ...
STARTING NEW TASK, RECEIVE RESULTS, CALL SELECTION-SCREEN, CALL DIALOG,
CALL TRANSACTION must not be used during a read action by an opened
database cursor (for example, within a database loop).
You can collect the data required for these statements together in an
internal table. Then you can process them in a loop via this internal
table.
In the case of SELECT loops, the statement
SELECT * FROM ... INTO TABLE ...
is often useful for this purpose.
Illegal interruption of a database selection.
If the error occurs in debugging mode, you should first run the actions
you want to test with debugging deactivated. If the error persists
outside debugging, you must analyze the application program more
closely.
Please see none error for more details about the possible cause of this runtime error and how it could be avoided.
One of the database selections included a database commit. The
selection was then supposed to continue. However, before a database
commit, all outstanding database selections must have completed.
Possible causes in the application program:
During the reading using a database cursor (within a loop
(SELECT/LOOP/EXEC SQL) or before a FETCH command), one of the following
statements is used:
- MESSAGE (except MESSAGE S...)
- COMMIT WORK
- ROLLBACK WORK
- BREAK-POINT
- WAIT
- CALL FUNCTION ... DESTINATION (synchronous RFC)
- CALL FUNCTION ... STARTING NEW TASK
- RECEIVE RESULTS
- CALL DIALOG
- CALL SELECTION-SCREEN
- CALL TRANSACTION
- CALL SCREEN or another statement that opens a new screen.
In debugging mode, a program sometimes triggers a "COMMIT WORK" during
the database selection. As a result, while in debugging mode, this
termination may also occur with a correct program.
A "COMMIT WORK" during debugging may be due to the following reasons:
1. A program or screen was regenerated and updated in the database.
2. Each user needs a private process in debugging mode, but the number
of available processes is restricted. If this limit is exceeded, each
debugging step requires a"COMMIT WORK".
The error occurred in a statement that accesses table <runtime parameter>.
Please see abap error for more details about the possible cause of this runtime error and how it could be avoided.
A database selection could not be completed.
DBIF_INCL_INVALID_CURSOR - dbif incl invalid cursor DBIF_INCL_INTERNAL_ERROR - dbif incl internal error DBIF_INCL_INTERNAL_CALL_CODE - dbif incl internal call code DBIF_INCL_DDIC_INCONSISTENT - dbif incl ddic inconsistent DBIF_DSQL2_UNEXPECTED_CODE - dbif dsql2 unexpected code DBIF_DSQL2_SQL_ERROR - dbif dsql2 sql error