>>iIndex = WriteDB("Test message1\0", 0);
>>iIndex = WriteDB("Test message2\0", 1);
CHANGE THESE, you don't need to put explicit '\0's at the end of literal
strings, the compiler does this for you.
>> newRecordH = DmNewRecord(gLibDB, &iRecPos, StrLen(pText));
CHANGE TO: newRecordH = DmNewRecord(gLibDB, &iRecPos, StrLen(pText)+1);
>>error = DmWrite(pTmpPtr, 0, pText, StrLen(pText));
CHANGE TO: error = DmWrite(pTmpPtr, 0, pText, StrLen(pText)+1);
You forgot to write the '\0's
Hope this helps
Prashant Gupta
"Young S. Cho" <[EMAIL PROTECTED]> on 02/01/2001 03:47:49 PM
Please respond to "Palm Developer Forum" <[EMAIL PROTECTED]>
To: "Palm Developer Forum" <[EMAIL PROTECTED]>
cc: (bcc: Gupta Prashant-SWD-ITIL-UB/Itilmail)
Subject: Garbage characters appended when text inserted/read from DB
Hi all,
I'm writing simple Palm DB code to write text strings to the database and
then to read it back. However, when I read the values back, I'm getting
garbage characters appended to my text string. Now, I'm not sure whether
the
garbage is getting added at the insert or read, but has anyone seen
something similar to this?
Thanks for any advice or suggestions...
Young Cho
[EMAIL PROTECTED]
The code fragment looks something like this:
------- Code to write & read from the DB
// Open the database - my routine to create the DB and to open it
error = OpenDB(appDatabaseName, 'DATA', appCreatorID);
iIndex = WriteDB("Test message1\0", 0);
iIndex = WriteDB("Test message2\0", 1);
for(iIndex = 0;iIndex < GetNumRecords();iIndex++)
{
record = ReadDB(iIndex);
StrPrintF(msg, "%2d:[%s]\n", iIndex, record);
DisplayMessage(msg);
}
error = CloseDB();
----- WriteDB looks like this ------
UInt16 WriteDB(char *pText, UInt16 iRecPos)
{
char *pTmpPtr;
Err error;
MemHandle newRecordH;
newRecordH = DmNewRecord(gLibDB, &iRecPos, StrLen(pText));
pTmpPtr = MemHandleLock(newRecordH);
error = DmWrite(pTmpPtr, 0, pText, StrLen(pText));
MemHandleUnlock(newRecordH);
// Unset the record's busy bit
DmReleaseRecord(gLibDB, iRecPos, true);
return(iRecPos);
}
----- ReadDB looks like this -----
char * ReadDB(UInt16 iRecPos)
{
Char *pText = NULL;
MemHandle recordH;
static char datatext[1024];
MemSet(&datatext, sizeof(datatext), 0);
recordH = DmQueryRecord(gLibDB, iRecPos);
pText = MemHandleLock(recordH);
StrPrintF(datatext, "%s\0", pText);
MemHandleUnlock(recordH);
return(datatext);
}
--
For information on using the Palm Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/tech/support/forums/
--
For information on using the Palm Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/tech/support/forums/
_____________________________________________________________
Visit http://www.PalmGreetings.com The Most Happening and
The first & only Mobile greeting site.
* Send & Receive e-cards using your Hand held/Palm top/WAP Phone
* Pleasure viewing animated cards on your device
* Unleash your creativity by creating your own cards
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/