hi gao jun,

i commited your fix but made a little change:

...
if (row == 0)
{
   getRsAndStmt().m_rs.beforeFirst(); //retval is false
}
else
{
retval = getRsAndStmt().m_rs.absolute(row); }
...

jakob

Jakob Braeuchi schrieb:
hi gao jun,

you're right, absolute(0) is not defined.
so your fix looks ok to me.

thanks for your contribution
jakob

Gao Jun schrieb:

Hi guys,

I’m using ojb 1.0.2 with oracle 9.2.

When I use ReportQueryByCriteria with setStartAtIndex and setEndAtIndex,

I found when I set the startAtIndex to 1, an ORA-17068 exception throws at JDBC level.

(invalid argument caused by absolute(0))

The startAtIndex of 1 is decreased by 1 at PagingIterator.init() and passed to RsIterator.absolute(int row), so RsIterator.absolute(0) is called.

After study the ojb source, I have one question regarding the method RsIterator.absolute(int row) (org.apache.ojb.broker.accesslayer.RsIterator)

this line:

retval = getRsAndStmt().m_rs.absolute(row);

I add a checking to prevent absolute(0) happens (when query.setStartAtIndex(1)). As below:

if(row != 0) {

      retval = getRsAndStmt().m_rs.absolute(row);

}

Is my way correct?

Please advice. Thanks,

Regards,

Gao Jun


------------------------------------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to