> My question is, when I beam a database or a selection of records that are > linked by these (external record unique ID's) what happens to them ? > > Do they remain what they were, and on the recieving device I have to ensure > that they are _still_ unique ? Does the DataManager generate NEW ID's as it > creates new records ?
In Palm OS 4.0, both ExgDBRead and ExgDBWrite preserve the unique IDs of the records. ExgDBRead uses the Data Manager to create records, but it uses DmSetRecordInfo to overwrite the new unique ID with the original one. In Palm OS 3.5, ExgDBWrite didn't send out the real unique IDs; it used 1, 2, 3, ... instead. ExgDBRead obeyed the incoming unique IDs. I didn't check older versions of Palm OS. In both Palm OS 3.5 and 4.0, the unique ID seed of the database is not preserved. ExgDBWrite writes out zero. ExgDBRead ignores the incoming unique ID seed, letting the Data Manager do what it always does for a new database. What this means is that frequent beams of a database, interspersed with record creation, will fragment the ID space, increasing the odds that a new record will have the same ID as an existing one. So if you need to support Palm OS 3.5, you'd better include your own ID field in each record. If not, you should be fine with the built-in unique IDs. We'll continue to preserve unique IDs in future versions of Palm OS. -- Danny @ PalmSource -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
