Downloading to the Handheld

As we discussed earlier, there are several different ways that you might want to move data around during a synchronization. Let’s look at what is involved in moving data from the desktop to the handheld. This is commonly done with databases that are exclusively updated on the desktop and are routinely downloaded to handhelds where they aren’t modified. Or you may do this in the case that the user chooses “Desktop overwrites handheld” in the HotSync settings dialog (see Figure 11.3).

You need to create the database if it doesn’t yet exist. You should also delete any existing records before downloading the ones from the desktop. This is necessary because you don’t want the old ones; all you want are the newly downloaded ones.

Deleting Existing Records

There are a few different routines to choose from for deleting records:

SyncDeleteRec

Deletes one specific record

SyncPurgeAllRecs

Deletes all records

SyncPurgeAllRecsInCategory

Deletes all records from the specified category

SyncPurgeDeletedRecs

Deletes all records that have been marked as deleted or archived

In our particular case, SyncPurgeAllRecs is the call we want to use.

Writing Records

Once you have a nice, empty database, you can fill it up with fresh records from the desktop. You do this with the Sync Manager call SyncWriteRec.

                  SyncWriteRec (CRawRecordInfo &rInfo)

The parameter rInfo (of class CRawRecordInfo) contains several important fields:

m_FileHandle

Handle to the open database.

m_RecId

Input/output ...

Get Palm Programming: The Developer's Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.