I'm concerned about some of my code - I don't know how to figure out if it
is working correctly.  I have a structure that includes a mem handle and I'm
not sure how exactly DMWrite works and whether it copies the data from the
mem handle or whether I should be grabbing the data out of the handle before
calling DmWrite....

Would someone please let me know 1) if this code should assumedly work and
2) how I might be able to browse a database and see if it actually is
storing what i think it is?
thanks
******************************code****************************

typedef struct {

 MemHandle QuestionAnswers;
 UInt8 sessionFinished;

} packed_question_type;

/*--------------------------------------------------------------------------
-----------------------------------------------------------
Function: SaveAnswersToDatabase
Desccription: saves answers from current session to database
Parameters: index for current session's record
Return: error code if necessary, otherwise 0
----------------------------------------------------------------------------
---------------------------------------------------------*/
Err SaveAnswersToDatabase(UInt16 index) {

 MemHandle h;
    MemPtr p;
    Err error;

    //allocate memory for the packed question's string
 packedQuestion.QuestionAnswers = MemHandleNew(1);

 //store whether the session was completed
 packedQuestion.sessionFinished=theQuestion.sessionFinished;

    //pack question for storage
    PackQuestion(theQuestion);

 //open questions database
 error=OpenQuestionsDatabase();

    //grab  a handle to a new record
    h = DmNewRecord(questionDatabaseRef, &index, sizeof(packedQuestion));

    //if handle was aquired sucesfully
    if (h) {

     //lock handle and grab pointer
        p = MemHandleLock(h);

        error = DmWrite(p, 0, &packedQuestion, sizeof(packedQuestion));

  //unlock the handle
        MemPtrUnlock(p);

        //release record and set dirty bit
        DmReleaseRecord(questionDatabaseRef,index,true);

    }//if (h)

    //close questions database
 error = CloseQuestionsDatabase();

    //free memory used by packed question
    MemHandleFree(packedQuestion.QuestionAnswers);

    return error;

}//SaveAnswersToDatabase



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to