I'm having a problem where I'm loosing my data after a device reset.

I'm using Code Warrior R5 and I'm able to create my database, add records,
and retrieve records using the following code, but when I reset the device
all of my records are zeroed out, the records still exist but they contain
all zeros.

Any Ideas?

static Err dbGetItem(UInt Index, UIntPtr ID, CharPtr Name)
{
  Handle hRec;
  recType *Temp;

  hRec = (Handle)DmQueryRecord(db, Index);
  (VoidPtr)Temp = MemHandleLock(hRec);
  *ID = Temp->ID;
  MemMove(Name, &(Temp->Name), Temp->NameSize);
  Name[Temp->NameSize]  ='\0';

  MemHandleUnlock(hRec);

  return false;
}

static Err dbAddItem(UInt ID, CharPtr Name)
{
  ULong RecordSize;
  UInt NameSize;

  Handle hRec;
  VoidPtr pRec;
  UInt Index;

  Index = DmNumRecords(db);

  NameSize = strlen(Name) + 1;
  RecordSize = db_ID_Size + db_NameSize_Size + NameSize;

  hRec = (Handle)DmNewRecord(db, &Index, RecordSize);
  pRec = MemHandleLock(hRec);

  DmWrite(pRec, db_ID_Offset, &ID, db_ID_Size);
  DmWrite(pRec, db_NameSize_Offset, &NameSize, db_NameSize_Size);
  DmStrCopy(pRec, db_Name_Offset, Name);

  MemHandleUnlock(hRec);

  return false;
}

static Err dbOpen(void)
{
  UInt CardNo;
  LocalID dbID;
  Word Attributes;

  Err Error;

  Error = false;

  db = DmOpenDatabaseByTypeCreator(dbTypeX, appCreator, dmModeReadWrite);
  if(!db)
  {
    Error = DmCreateDatabase(0, dbNameX, appCreator, dbTypeX, false);
    ErrFatalDisplayIf(Error, "Could not create new database.");

    db = DmOpenDatabaseByTypeCreator(dbTypeX, appCreator, dmModeReadWrite);
    ErrFatalDisplayIf(Error, "Could not open new database.");

    dbAddItem(737, "Ron Muth");
    dbAddItem(709, "Ed Kissel");
    dbAddItem(749, "Bill Lammey");
    dbAddItem(811, "Jeff Barthelmes");
    dbAddItem(414, "Lee Jones");
    dbAddItem(417, "Jeff Turin");
  }

  return Error;
}

Ron Muth
Integrated Solutions, Inc.
120 Filmore Street
Suite 100
Phoenixville, PA 19460
(610) 933-6839 x737
Fax: (610) 983-0272
[EMAIL PROTECTED]
www.isi-net.com

Reply via email to