Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Limiting Large Result Sets
smartnhandsome_at_gmail.com wrote:
> Thanks for every ones replies to make the question more clear this
> what i wanted from the code
> I have a method which can accept a SQL query as input parameter and
> number of results the user wants
>
> public RowSetDynaClass getResults(String sql,int resultNumber)
> {
> prepareStatment= conn.prepareStatement(sql.toString()),
> ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
> prepareStatment.setMaxRows(resultNumber);
> resultset = prepareStatment.executeQuery();
> rowsdc = new RowSetDynaClass(resultset);
>
> }
>
> So the user gets back a result for the first 10 rows, now the user
> again requests another set of 10 rows.
Your user wants the impossible. If the method gets a request with the same SQL as it received last time, there is no way it can consistently and correctly guess whether your user wants it to fetch the next rows from the same query execution, or wants it to re-invoke the query. Educate your user.
> This method is again called and
> here is the real problem starts he now wants to get results from 11-20.
> Simply put the question is how to maintain the state of the results
> with out modifying the query the user inputs??
The original abstraction you are using automatically maintains this state. The problem is that you have come up with your own abstraction which throws that away. If you don't want to do that, then don't do that.
Xho
-- -------------------- http://NewsReader.Com/ -------------------- Usenet Newsgroup Service $9.95/Month 30GBReceived on Wed Aug 30 2006 - 14:42:38 CDT
![]() |
![]() |