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