[Opensource] searchAndRetrieveList() method of
MultiDBObject.java
larry hamel
expresso at codeguild.com
Mon Dec 15 10:19:41 PST 2003
hi Liuhey,
I'll be happy to check this in, but I would be more confident if you said "I've made this change and it works well."
Have you tried it? (Perhaps you already have--you have been 100% correct in the past!)
BTW, I added a utility method to MultiDBObject recently, and also fixed a bug with it when using SecuredDBObjects as targets. See CVS for those changes.
larry
At 09:04 PM 12/14/2003, you wrote:
>There is a bug in the searchAndRetrieveList() method of MultiDBObject.java.
>After executing the query, it ignores the offset property when it populates the MultiDBOBject objects from myConnection.
>I think it should do this like the searchAndRetrieveList() method of DBObject.
>
>//MultiDBObject
> public synchronized List searchAndRetrieveList() throws DBException {
> ..............
> myConnection.execute(myStatement.toString());
>
> int recordCount = 0;
>
> while (myConnection.next()) {
> MultiDBObject myObj = getThisMultiDBObj();
> recordCount++;
>
> if ((recordCount > maxRecords) && (maxRecords > 0)) {
> break;
> }
>
> int i = 1;
>
> if (log.isDebugEnabled()) {
> log.debug("Retrieved row " + recordCount);
> }
>
> String oneFieldValue = null;
> ......}}
>
>//DBObject
> public synchronized List searchAndRetrieveList() throws DBException {
> ..............
> myConnection = this.createAndExecuteSearch(retrievedFieldList);
>
> int recordCount = 0;
> int retrieveCount = 0;
>
> while (myConnection.next()) {
> recordCount++;
> retrieveCount++;
>
> //If there's limitation syntax on, then the first record will be the
> //maximum record.
> if (retrieveCount < offsetRecord && offsetRecord > 0 &&
> myConnection.getLimitationPosition() == DBConnection.LIMITATION_DISABLED) {
> continue;
> } else if (retrieveCount == offsetRecord && offsetRecord > 0 &&
> myConnection.getLimitationPosition() == DBConnection.LIMITATION_DISABLED) {
> recordCount = 0; //Reset count for counting for max records.
> continue; //Skip this record... next one, we will start loading.
> }
> if ((recordCount > maxRecords) && (maxRecords > 0)) {
> this.setAttribute("More Records", "Y");
> break;
> }
> ......}}
>_______________________________________________
>Opensource mailing list
>Opensource at jcorporate.com
>http://mail.jcorporate.com/mailman/listinfo/opensource
>Archives: http://mail.jcorporate.com/pipermail/opensource/
More information about the Opensource
mailing list