Hi Gurus,
I am having problems with the followind code.
bool PalmDbImp::DBMCreateNewRecord()
{
VoidHand hHandler;
Err err = false;
Char zero = 0;
UInt uIndex = 0;
hHandler = DmNewRecord( s_db, &uIndex, sizeof(OfflineRecord) );
if( hHandler ) {
Ptr p;
// Get a point to the main block associated with the record
p = (Ptr) MemHandleLock( hHandler );
// Clear the record
err = DmWrite( p, 0, &zero, sizeof(OfflineRecord) );
MemPtrUnlock( p );
// Release the record
DmReleaseRecord( s_db, uIndex, true );
// Index of the current record
s_recordNum = 0;
err = true;
} else {
ErrFatalDisplayIf( err, "Could not create new record" );
err = false;
}
return err;
}
I have a C version of this code working in other application I developed.
Today I decided to put it as a C++ class. The class represents a generic
database.
Everything works fine. I am able to open the database, close, but when I try
to create a new record and clean it I got the following message:
untitled 1.0 Has just read from memory manager data structures. This happens
in the DmWrite call. The strange thing is I am locking the memory before
writing on it.
Why is it complaining? Does it have to do with C++? Any thoughts?
Thank You
ATTACHMATE CORPORATION
Dalmer Azevedo
Mobile Technologies Practice
Voice 650 962 7173
Cell 408 569 6819
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palm.com/devzone/mailinglists.html