[Opensource] searchAndRetrieveList() method of MultiDBObject.java

larry hamel expresso at codeguild.com
Tue Dec 16 13:56:21 PST 2003


hi Liuhey,

ok, checked in the following code at 1526 on MultiDBObject.

does this echo what you've tested?

larry
----------------------------

            while (myConnection.next()) {
                recordCount++;
                realRecordCount++;

                if (log.isDebugEnabled()) {
                    log.debug("Retrieved row " + realRecordCount);
                }

                //If there's limitation syntax on, then the first record will be the
                //maximum record.
                if (recordCount < offsetRecord && offsetRecord > 0 &&
                        myConnection.getLimitationPosition() == DBConnection.LIMITATION_DISABLED) {
                    continue;
                } else if (recordCount == 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)) {
                    break;
                }

                MultiDBObject myObj = getThisMultiDBObj();
...

At 09:06 PM 12/15/2003, liuhey wrote:
>Yes,I've made this change and it works well.
>
>----- Original Message ----- 
>From: "larry hamel" <expresso at codeguild.com>
>To: <opensource at jcorporate.com>
>Sent: Tuesday, December 16, 2003 2:19 AM
>Subject: Re: [Opensource] searchAndRetrieveList() method of MultiDBObject.java
>
>
>> 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/
>> 
>> _______________________________________________
>> Opensource mailing list
>> Opensource at jcorporate.com
>> http://mail.jcorporate.com/mailman/listinfo/opensource
>> Archives: http://mail.jcorporate.com/pipermail/opensource/
>> 
>_______________________________________________
>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