If you use DmGetRecord in your for loop, don't you need a corresponding 
DmReleaseRecord when you're done with the record?



At 10:47 AM 16/04/2002 -0700, you wrote:
>Hi,
>
>As what Paul Gibson said, I suggest:
>
>    TimSecondsToDateTime (TimGetSeconds (), &dateTime);
>    todayInt = ( ((Int32) dateTime.year-1904) << 16) +
>               ( ((Int32) dateTime.month) << 8) +
>               ((Int32) dateTime.day);
>
>    // do you have the right number of records in the DB? if not sure, then
>    // umRecordsNeu = DmNumRecords(gVeranstaltungNeuDB);
>
>    // start from the last record because after we delete
>    // a record, the record num will be changed
>    // I use DmRemoveRecord(), so I am not sure if
>    // you use DmDeleteRecord() the record num get changed or not
>    for (recordNeuNum = umRecordsNeu - 1; recordNeuNum >= 0; recordNeuNum --)
>    {
>       // why do you need to seek the record when you look for record in 
> "All" category
>       //DmSeekRecordInCategory(gVeranstaltungNeuDB,
>       //&recordNeuIndex, 0, dmSeekForward, dmAllCategories);
>       //recordH  = DmQueryRecord (gVeranstaltungNeuDB, recordNeuIndex);
>       recordH = DmGetRecord(gVeranstaltungNeuDB, recordNeuNum);
>
>       if (!recordH)
>       {
>          FrmCustomAlert(MyAlert, "Problem beim Auslesen der neuen 
> DB!","", "");
>          err = DmGetLastErr();
>          break;
>       }
>       else
>       {
>          pointer_auf_neue_v = (Veranstaltung_neu *)MemHandleLock(recordH);
>          if (!pointer_auf_neue_v)
>          {
>             // proper error message ... :-)
>             FrmCustomAlert(MyAlert, "Problem with DB!","", "");
>             err = DmGetLastErr();
>             break;
>          }
>          else
>          {
>             //if not, then continue ...
>             // do you need this?
>             //neueVeranstaltung = *pointer_auf_neue_v;
>
>             //  ### Position 1 for #######   MemHandleUnlock(recordH);
>             // can't unlock here because if you unlock, you may not
>             // have the right value in
>             // pointer_auf_neue_v
>
>             // delete all old records.
>             dateInt =  ( ((Int32) pointer_auf_neue_v->datum_jahr) << 16) +
>                        ( ((Int32) pointer_auf_neue_v->datum_monat) << 8) +
>                        ((Int32) pointer_auf_neue_v->datum_tag);
>
>             if (todayInt > dateInt)
>             {
>                MemHandleUnlock(recordH);
>                err = DmDeleteRecord(gVeranstaltungNeuDB, recordNeuNum);
>                deletedOldRecordsNum ++;
>             } else {
>                // so now, every record is in the future..
>
>                // do some stuff with this record
>                MemHandleUnlock(recordH);
>             }
>          }
>       }
>    } // next in loop
>
>//If you don't need to sort other field of the records,
>//you can sort by date, then you don't have to go thru all the records...
>Hope that helps.
>
>tnn
>
>
>__________________________________________________
>Do You Yahoo!?
>Yahoo! Tax Center - online filing with TurboTax
>http://taxes.yahoo.com/
>
>--
>For information on using the Palm Developer Forums, or to unsubscribe, 
>please see http://www.palmos.com/dev/support/forums/

John Leung
EMail: [EMAIL PROTECTED]
Web:   http://persweb.direct.ca/jleung/


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to