Danny Epstein wrote:
> 
> "Roberto Amorim" <[EMAIL PROTECTED]> wrote in message
> news:9487@palm-dev-forum...
> > HandleTemp=MemHandleNew(200);
> > HandleOrder = DmQueryRecord(PVOrder, i);
> 
> You should check if HandleOrder is NULL here. This indicates that there is
> no record at the given index. This might be the problem.
> 
> > RecOrder=MemHandleLock(HandleTemp);
> > UnPackOrder(RecOrder, MemHandleLock(HandleOrder));
> > if (StrCompare(RegCus->CdCus,RegOrder->CdCus))
> --
> Danny Epstein
> OS Engineer, Palm Inc.
> 
> --

Hi,
I change my code and the error is more weird now.


HandleOrder  = DmQueryRecord(PVOrder, PedRegCorr);

Error      = DmGetLastErr();
ErrFatalDisplayIf(Error, "Unable to locate Order");     
*****This test returned Error=zero*******

RecTempOrder = MemHandleLock(HandleOrder); 
****The error now is here "Invalid Handle"*****

HandleTemp = MemHandleNew(200);
if (!HandleTemp) ErrDisplay("Error allocating handle");
RecOrder     = MemHandleLock(HandleTemp);
UnPackOrder(RecOrder, RecTempOrder);

I used this function before to find successfully the record.

static long ReadRecOrderbyCd(CharPtr txtCdOrder)
{
 int                    index,foundIt;
 index=0;
 HandleTemp=MemHandleNew(200);
 do {
    HandleOrder = DmQueryRecord(PVOrder, index);
    RecOrder    = MemHandleLock(HandleTemp);
    UnPackPedido(RecOrder, MemHandleLock(HandleOrder));
    foundIt = StrCompare(txtCdOrder, RecOrder->NrOrder) == 0;
    if (foundIt)
       {
        MemHandleUnlock(HandleOrder);
        MemHandleUnlock(HandleTemp);
        MemHandleFree(HandleTemp);
        return index;
       }
    MemHandleUnlock(HandleOrder);
    MemHandleUnlock(HandleTemp);
    index++;
 } while (index < NumRecsOrder - 1);            
 MemHandleFree(HandleTemp);
 return NULL;
}

I not even imagine what is happening.:-(

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palm.com/devzone/mailinglists.html

Reply via email to