OK, I read somewhere that you must do ExgDisconnect after a ExgPut even if that 
ExgPut returned an error (why doesn't the documentation say this clearly?!). I 
assume that it is the same with ExgAccept. So, I changed my receiving code to do

    err = ExgAccept (exgSocket);
    if (err == errNone)
        err = ExgDisconnect (exgSocket, ExgDBRead (ReadDBData, DeleteProc, 
exgSocket, &dbID, 0, &doReset, true));
    else
        err = ExgDisconnect (exgSocket, err);

and my sending code to do

        err = ExgPut (&exgSocket);
        if (err != errNone)
            err = ExgDisconnect (&exgSocket, ExgDBWrite (WriteDBData, 
&exgSocket, exgSocket.name, dbID, 0));
        else
            err = ExgDisconnect (&exgSocket, err);

Didn't fix the problem of appData being zero. :-( In addition, now I am getting 
a dialog saying "Error: Database: corrupt database (0x0209)". Huh??

I'm not the only one who can't seem to get appData set to anything sensible, 
either. Somebody else has been screaming about exactly the same problem here:

http://news.palmos.com/read/messages?id=146846
http://news.palmos.com/read/messages?id=177653
http://news.palmos.com/read/messages?id=179199

Nobody gave him a meaningful reply, either. :-(

In another thread,

http://news.palmos.com/read/messages?id=31392

somebody from Palm is saying that the length field of the ExgSocketType 
structure isn't guaranteed to be transmitted and might be zero on the receiving 
end even if the sender sends it. (Gosh! Does anything actually *work* in this 
library?!) Maybe the appData field has the same, uhm, problem?? If that is the 
case, what good is this field for, anyway???

Or could it be that these problems are specific to the simulator? (I can't test 
with a real device right now, because I only have one.)

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

Reply via email to