Opening, Creating, and Closing Databases
You handle these operations in a straightforward manner in Palm applications.
Opening a Database
You can specify a database to open using one of the following:
Type and creator
Name and card number
The type and creator is usually more convenient, but you can run into a problem if more than one database exists with the same type and creator. This might happen, for instance, in a book-reading program, where every downloaded book is a database with the same type and creator, but with a different name. If more than one database exists, one of them (no guarantee which one) will be opened.
An open database is referenced by a
DmOpenRef
, which is a pointer to information about the
database. If an open fails, it returns NULL
. Many
Data Managers return an error code explicitly. For those that
don’t, call
DmGetLastErr
to determine the last error.
Opening by type and creator
You usually open your database
using the type and creator. Example 10-1 shows
opening the Memo Pad database (which has a type of
DATA
and a creator ID of memo
)
for read-write access.
Example 10-1. Opening the Memo Pad database by type and creator
Err OpenMemopadByTypeCreator(DmOpenRef *refPtr) { Err err = errNone; UInt16 mode = dmModeReadWrite; DmOpenRef ref; ref = DmOpenDatabaseByTypeCreator('DATA', 'memo', mode); if (ref == NULL) err = DmGetLastErr( ); *refPtr = ref; return err; }
In your application, you’ll usually use a mode of
dmModeReadWrite
, since you may be modifying records ...
Get Palm OS Programming, 2nd Edition 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.