Moving Data to the Handheld
As we discussed earlier, there are several different ways 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 updated exclusively on the desktop and are routinely moved to handhelds where they aren’t modified, but may also occur when the user chooses “Desktop overwrites handheld” in the HotSync Settings dialog box (see Figure 14-12).
You need to create the database if it doesn’t already exist. You should delete any existing records before moving the ones from the desktop because you won’t want the old ones; all you’ll want are the newly moved ones.
Deleting Existing Records
There are a few different routines from which to choose for removing records from the handheld:
-
SyncDeleteRec Removes one specific record
-
SyncPurgeAllRecs Removes all records from a database
-
SyncPurgeAllRecsInCategory Removes all records from the specified category
-
SyncPurgeDeletedRecs Removes all records that have been marked as deleted or archived
For no terribly good reason, one API uses the term
“delete,” while others use “purge.” All of
them remove records (completely) from the database. 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 can add or replace records with the
Sync Manager call, SyncWriteRec:
long SyncWriteRec(CRawRecordInfo ...