2010 Mar 18 7:54 AM
Hi experts,
I am having some trouble with a DBIF_RSQL_INVALID_CURSOR Error after calling FM ENQUEUE_READ inside a select-endselec statement.
When I erase the ENQUEUE_READ FM call the error dissapears, but i cannot undertand this because the select-endelect in in cdpos table and the enqueue_read i about EBAN.
Is there any way to restart the cursor or something like that after calling the FM??
Someone has some clue about this?
Thanks,
Artur.
2010 Mar 18 8:13 AM
Hi Artur,
I think the problem is that the enqueue function has to communicate with the enqueue service (potentially located on a different application server) and thus probably triggers an [implicit commit|http://help.sap.com/saphelp_nw04/helpdata/en/41/7af4bca79e11d1950f0000e82de14a/frameset.htm].
Instead of using SELECT-ENDSELECT you could first read all the data into an internal table and then process them (i.e. SELECT INTO TABLE and then LOOP AT). This might also be better from a performance perspective, because it reduces the overhead of communication with the database (though you will use up some more memory). Another alternative might be to try using the [OPEN CURSOR WITH HOLD|http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3b23358411d1829f0000e829fbfe/frameset.htm] statement instead of your SELECT-ENDSELECT.
Cheers, harald
Hi experts,
I am having some trouble with a DBIF_RSQL_INVALID_CURSOR Error after calling FM ENQUEUE_READ inside a select-endselec statement.
When I erase the ENQUEUE_READ FM call the error dissapears, but i cannot undertand this because the select-endelect in in cdpos table and the enqueue_read i about EBAN.
Is there any way to restart the cursor or something like that after calling the FM??
Someone has some clue about this?
Thanks,
Artur.
2010 Mar 18 8:13 AM
Hi Artur,
I think the problem is that the enqueue function has to communicate with the enqueue service (potentially located on a different application server) and thus probably triggers an [implicit commit|http://help.sap.com/saphelp_nw04/helpdata/en/41/7af4bca79e11d1950f0000e82de14a/frameset.htm].
Instead of using SELECT-ENDSELECT you could first read all the data into an internal table and then process them (i.e. SELECT INTO TABLE and then LOOP AT). This might also be better from a performance perspective, because it reduces the overhead of communication with the database (though you will use up some more memory). Another alternative might be to try using the [OPEN CURSOR WITH HOLD|http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3b23358411d1829f0000e829fbfe/frameset.htm] statement instead of your SELECT-ENDSELECT.
Cheers, harald
2010 Mar 18 8:15 AM
Ok thanks!
(I am trying to close the thread but i am recieving error messages by internet explorer, i''ll ltry later)
Edited by: Artur Rodriguez Coma on Mar 18, 2010 9:28 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |