Hi,
May be some of you can help me out with my problem. I am using codewarrior and
developing a simple application that would save
string from textfield into database for later use. The string length
is unknown. For some reason, when I retrieve the record from the
database, it always return blank. Insider show that the database does
have the record. I use "test" as the string to test it.
Here is what I use to save the record:
static Boolean AddRecord()
{
FormPtr frmP;
FieldPtr url1fldP;
Char * url1Str;
frmP = FrmGetActiveForm();
url1fldP = FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, 1204));
url1Str = FldGetTextPtr(url1fldP);
if (url1Str == NULL)
{
FrmAlert (DataIncompleteAlert);
return false;
}
else
{
Handle h;
UInt numberRecord = DmNumRecords(gDatabase);
UInt index;
UInt slength;
if (numberRecord == 0)
{
index = dmMaxRecordIndex;
slength = StrLen(url1Str) + 1;
h = DmNewRecord(gDatabase, &index, slength);
if (h)
{ // could fail due to out of memory!
Ptr p = MemHandleLock(h);
Err err = DmWrite(p, 0, &url1Str, slength);
MemPtrUnlock(p);
DmReleaseRecord(gDatabase, index, true);
}
}
}
return true;
}
Here is what I do to get the record:
static Boolean GetRecord()
{
Handle h;
//FieldPtr fldP;
FormPtr frm = FrmGetActiveForm();
Char recordAsString[5];
h = DmQueryRecord(gDatabase, 1);
if (h) {
Char * record = MemHandleLock(h);
StrCopy(recordAsString, record);
//fldP = FrmGetObjectPtr(frm, 1204);
//MemHandleUnlock(h);
}
return true;
}
At this point, the debugger show that record == "" and recordAsString = "". h does has
data,
why is record blank ? Hope someone can help as I am new to this. Thanks so much in
advance.
Darren
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/