Can someone give me an idea as to what could be causing this error?

Fatal Error
DataMgr.c Line:6294,
DmWrite:DmWriteCheck
failed

I'm currently working on submitting information to the database.  I have it
working, but now I need to modify the memory allocation for my strings, etc.
when submitting data of varying lengths to the database.  I rewrote my
current function, with one based off the Expense Database sample code.

This is basically it.  I'm trying to tackle strings right now... I'll expand
upon this later.

Any suggestions would be greatly appreciated.

void SetGeneral(FormPtr frm)
{
     tblInfo theInfo;
     UInt curSize, newSize;

     VoidHand record = DmQueryRecord(gInfoDB, 0);
     tblPackedInfoPtr p = MemHandleLock(record);

     curSize = MemPtrSize(p);
     UnpackInfo( &theInfo, p);
     newSize = curSize;

     newSize += StrLen(FldGetTextPtr(FrmGetObjectPtr(frm,
FrmGetObjectIndex(frm, NfoGeneralTripNumberField)))) -
StrLen(theInfo.TripNumber);

     if(newSize > curSize)
     {
          MemPtrUnlock(p);
          MemHandleResize(record, newSize);
          p = MemHandleLock(record);
          UnpackInfo(&theInfo, p);
     }

     ChangeRecordField(p, curSize, FldGetTextPtr(FrmGetObjectPtr(frm,
FrmGetObjectIndex(frm, NfoGeneralTripNumberField))), theInfo.TripNumber);

     if(newSize < curSize)
          MemPtrResize(p, newSize);

     MemPtrUnlock(p);
}


static void ChangeRecordField(tblPackedInfoPtr src, ULong size, VoidPtr
data, CharPtr field)
{
     ULong  offset;
     ULong  bytes;
     CharPtr  ptr;

     // Move the rest of the record
     offset = (field - (CharPtr)src) + StrLen(data) + 1;
     ptr = field + StrLen(field) + 1;
     bytes = size - (ULong)(ptr - (CharPtr)src);
     if(bytes)
          DmWrite(src, offset, ptr, bytes);

     // Write the new field
     offset = (field - (CharPtr)src);
     DmStrCopy(src, offset, data);
}


--

Tim Astle



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

Reply via email to