This is to all the book writing dudes. A lot of people here seem to be writing struts books. Include an example that does this... Scrolling through pageable data on a JSP from a large result set is very common for J2EE/struts developers yet there are no good examples out there. Real world examples would help sell the book for me. My 5 c
BTW, I'm implementing this same routine now as we speak. I've done it before (setting cursors and cursor sql in JDBC) but I'm trying to do it slightly differently and in a more DB independent way (no DB specific SQL, stored procedures, etc. just JDBC method calls and DB independent SQL) so I'll post the code here when I get it working (and working fast). Mike ----- Original Message ----- From: "Ashish Kulkarni" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Tuesday, September 10, 2002 11:30 AM Subject: Re: [OT] RE: Struts and Large ResultSet > Hi Dave, > thanx for the solution, but i guess first one is okay, > for me, since if i keep the primary keys in list and > store it in user session, then it may be a problem if > some one else, deletes a record from database. since > the same database will be used by may user, i dont > want to check for each record while loading from > database, > Ashish > --- David Graham <[EMAIL PROTECTED]> wrote: > > Here's how you would grab the next set of values: > > select id, field1, fieldn > > from table > > where id > cur_value > > order by id > > fetch first 30 rows only > > > > You would put a number in for cur_value like 30 to > > get the second set of 30 > > records. If you don't want to run that query each > > time, just query the > > whole table and put the primary keys into a List > > object in the user's > > session. When the user wants the next set of values > > you query the table > > using an appropriate subset of the primary keys you > > stored in the session. > > > > These are your 2 best bets. > > Dave > > > > >Hi Dave, > > >this querry only works for first 30 fields, but > > what > > >if i want to get data from 31 to 60, then either i > > >have to have the key for 31 record, or else i will > > >have to run the querry twice, first to get the > > first > > >30 and then the next 30 after setting the key.. > > >i have nottired getting the next 30 records, but > > this > > >querry work on as400 i have tried it before > > >Ashish > > >--- David Graham <[EMAIL PROTECTED]> wrote: > > > > The databases all have their own version of this > > > > feature :-( so in SQL > > > > Server it's: > > > > > > > > select top 10 from table > > > > > > > > which makes the most sense to me. But, in DB2 > > you > > > > use a "fetch first" > > > > clause like this: > > > > > > > > select * from table > > > > fetch first 30 rows only > > > > > > > > Here's where I found the info > > > > > > > >http://nscpcw.physics.upenn.edu/db2_docs/db2s0/fet1st.htm#HDRFET1ST > > > > > > > > I tried it out on a db2 7.2 database on win2k so > > > > hopefully it works on > > > > AS400. > > > > > > > > Dave > > > > > > > > >From: Ashish Kulkarni > > <[EMAIL PROTECTED]> > > > > >Reply-To: "Struts Users Mailing List" > > > > <[EMAIL PROTECTED]> > > > > >To: Struts Users Mailing List > > > > <[EMAIL PROTECTED]> > > > > >Subject: Re: [OT] RE: Struts and Large > > ResultSet > > > > >Date: Mon, 9 Sep 2002 16:02:00 -0700 (PDT) > > > > > > > > > >Hi, > > > > >I am developing an web interface to existing > > AS400 > > > > >system, so there is no way i can go to MYSQL or > > > > >suggest to change database, i have to live with > > > > AS400 > > > > >and DB2 and try to find a way out > > > > >thanx for suggestion > > > > > > > > > >--- "Peter A. J. Pilgrim" > > > > ><[EMAIL PROTECTED]> wrote: > > > > > > Ashish Kulkarni wrote: > > > > > > > Hi, > > > > > > > But is there a way to write some thing, > > which > > > > is > > > > > > > database independent, so u can change the > > > > database > > > > > > > without any code modification, > > > > > > > what i am trying it using CachedRowSet, i > > load > > > > the > > > > > > > resultset into a cachedrowset and then > > display > > > > it > > > > > > page > > > > > > > by page, > > > > > > > now only think i have to figure is, how > > can i > > > > load > > > > > > > only few records in this rowset, like if i > > > > have 1 > > > > > > > million records, just load say 1000 > > records, > > > > > > iterate > > > > > > > through them, if u reach end of cache load > > > > another > > > > > > > 1000, and so, > > > > > > > since a user will never go through a > > process > > > > of > > > > > > seeing > > > > > > > million records at a time, may be 1000 the > > > > max... > > > > > > > most user will use some thing like "Go To" > > to > > > > > > point at > > > > > > > a specific record in database, > > > > > > > I hope this thing works out well > > > > > > > Ashish > > > > > > > > > > > > > > > > > > Then you need something like MYSQL which has > > > > special > > > > > > reserved word to help you limit the size of > > the > > > > > > results. > > > > > > > > > > > > SELECT LAST_NAME, FIRST_NAME, DEPT FROM > > > > > > COMPANY_EMPLOYEES > > > > > > ORDER BY LAST_NAME > > > > > > GROUP BY DEPT > > > > > > LIMIT <offset>, <number-of-rows> > > > > > > > > > > > > The "LIMIT" word get you a finite rowset > > > > limitation > > > > > > efficiently on the Database server side. > > Without > > > > > > this > > > > > > you may have to read the entire data set out > > of > > > > the > > > > > > database. Say you only interested in rows 30 > > to > > > > 40 > > > > > > then you discard 30 rows already as in > > normal > > > > JDBC > > > > > > programming and then kill off the query and > > > > result > > > > > > after reading row 439. Suppose the database > > > > table > > > > > > has 10000 rows, then the database server may > > in > > > > > > efficient > > > > > > allocate the time and memory for 1000 rows > > to > > > > read > > > > > > by the client. But you stopped on row 40, > > what > > > > > > a waste with 960 unused records! > > > > > > > > > > > > So in a nutshell go with MYSQL > > > > > > > > > > > > SELECT CASH_IN, CASH_OUT, INVOICE, CUSTOMER > > > > > > FROM BOOK_BALANCE > > > > > > LIMIT 30, 10 > > > > > > > > > > > > a la google.com > > > > > > > > > > > > Or I think Oracle my have ROWINDEX > > attribute. > > > > > > > > > > > > ROWINDEX >= 30 and ROWINDEX < 40. > > > > > > > > > > > > Sybase and Postgres I dunno. > > > > > > > > > > > > -- > > > > > > Peter Pilgrim +-----\ > > +-++----++----+ > > > > > > Java Technologist | | | || || > > | > > > > 'n' > > > > > > Shine > > > > > > | O | | || --+| > > ---+ > > > > > > /\ | ._ / | | \ \ | > > | > > > > > > / \ | | \ \ | |+-- || > > ---+ A > > > > new > > > > > > day > > > > > > /_ _\ "Up" | | | | | || || > > | > > > > is > > > > > > coming > > > > > > || +-+ +-+ > > +-++----++----+ > > > > > > <home > > page="http://www.xenonsoft.demon.co.uk/" > > > > /> > > > > > > > > > > > > > > > > > > -- > > > > > > To unsubscribe, e-mail: > > > > > > > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > For additional commands, e-mail: > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > > > > > >===== > > > > >A$HI$H > > > > > > > > > > > >__________________________________________________ > > > > >Do You Yahoo!? > > > > >Yahoo! Finance - Get real-time stock quotes > > > > >http://finance.yahoo.com > > > > > > > > > >-- > > > > >To unsubscribe, e-mail: > > > > > > ><mailto:[EMAIL PROTECTED]> > > > > >For additional commands, e-mail: > > > > ><mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > > > > > > > > >_________________________________________________________________ > > > > Join the world's largest e-mail service with MSN > > > > Hotmail. > > > > http://www.hotmail.com > > > > > > > > > > > > -- > > > > To unsubscribe, e-mail: > > > > > > <mailto:[EMAIL PROTECTED]> > > > > For additional commands, e-mail: > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > >===== > > >A$HI$H > > > > > >__________________________________________________ > > >Yahoo! - We Remember > > >9-11: A tribute to the more than 3,000 lives lost > > >http://dir.remember.yahoo.com/tribute > > > > > >-- > > >To unsubscribe, e-mail: > > ><mailto:[EMAIL PROTECTED]> > > >For additional commands, e-mail: > > ><mailto:[EMAIL PROTECTED]> > > > > > > > > > > > _________________________________________________________________ > > MSN Photos is the easiest way to share and print > > your photos: > > http://photos.msn.com/support/worldwide.aspx > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > ===== > A$HI$H > > __________________________________________________ > Yahoo! - We Remember > 9-11: A tribute to the more than 3,000 lives lost > http://dir.remember.yahoo.com/tribute > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>