Luc Le Blanc, >Actually, a UInt16 would let you think the limit is 65535 records. This was my >belief until today :(
As I recall previous discussions, prior to OS 3.5 the data types were simply "int" which meant the max value was at best 32767. In 3.5, the data types were made more explicit and all references to record indexes *should* have been made a UInt16. However, a few slipped through the cracks and were converted to Int16 instead, and not caught until 4.1 as I recall. So from 3.5 to 4.0, you can only handle between 32768 and 65535 by avoiding certain routines, among them DmFindSortPosition() -- or by coding your own replacements. From OS 4.1 on, I believe that in theory you can handle up to 64K records. But I for one don't have the patience to Hot Sync that many records! The effect on record counts (as opposed to byte counts) in the Hot Sync Manager is covered often in the archives. In my view, it doesn't matter if the limit is 16K or 32K or 64K as *none* of those are practical in my book even if in theory they work. >> Actually, I think the limit is 16K records, as the DB index has to be >> stored in a single 64K chunk, and there's a 4-byte pointer per index. I'm quite sure I've run timing tests in years past with up to 30K records even under OS 3.5 -- it worked, provided you could wait for the Hot Sync to finish. Once on the device, accessing the database was fine (by I wouldn't suggest operations like DmFindRecordByID, which does a linear search). Doug -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
