2cnd call to DataDapapter.fill with RefCursor leads to InvalidOperationException — oracle-tech

    Forum Stats

  • 3,715,827 Users
  • 2,242,889 Discussions
  • 7,845,623 Comments

Discussions

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

2cnd call to DataDapapter.fill with RefCursor leads to InvalidOperationException

Markus Schneider
Markus Schneider Member Posts: 609 Blue Ribbon
Hi there,

try to build paging with the DataGrid, a DataSet and a RefCursor, but the 2cnd call to DataDapapter.fill with RefCursor leads to InvalidOperationException:

"Operation is not valid due to the current state of the object."

int numRecs = dataAdapter.Fill(dataSet, startRecord, pageSize, "MyTable", refCursor);

Idea would be to retreive only the number of displayed rows of the resultset from the database and only get the next rows if the users scrolls the datagrid.

Thanks, Markus

Comments

  • 3004
    3004 Member Posts: 204,171
    Markus,

    The current version of ODP.NET has a limitation of only allowing a single Fill() on an OraRefCursor. This limitation will be eliminated in the next release of ODP.NET.

    thanks,

    - nari
  • Markus Schneider
    Markus Schneider Member Posts: 609 Blue Ribbon
    Nari,
    thanks for your answer. Does "next release" means the production release of the current beta? What is the timeframe (3, 6, 12 Months?) i can expect a version supporting this?

    The feature would be really useful because of response times and performance of the userinterface.

    Is there any other solution to implement paging (without modifying the WHERE-Statement)?
  • 3004
    3004 Member Posts: 204,171
    Markus,

    We are planning on releasing another beta release in 2 - 3 months. (Unfortunately, that's as specific as I can get.) I'll see to it that the muliple Fill() on an OraRefCursor issue is resolved with that release.

    thanks,

    - nari
  • 170397
    170397 Member Posts: 20
    Does Multiple calls to Fill() on a refcursor require the same connection where the refcursor was originally opened, OR it would work with Oracle server-side connection pooling, which doesn't require same physical session as long as the logical session is open?

    Thanks
    Bob
  • 3004
    3004 Member Posts: 204,171
    Bob,

    To successfully manipulate an OraRefCursor object (and the OraLOB objects), the connection that it was orignally associated with at its creation time must be alive. Once the associated connection is closed or disposed, they are no longer usable.

    thanks,

    - nari
This discussion has been closed.