Developers familiar with Microsoft's desktop Access database solution may be disappointed when first encountering its Windows CE offspring, Pocket Access. Gone is the ability to create custom Access forms, reports, or stored queries; however, this probably shouldn't come as a big surprise, given the slight memory resources of most Windows CEbased mobile devices. Pocket Access files are stored using the .cdb extension and are populated by one or more tables gleaned from a desktop Access database. The ADOCE API provides two methods for transferring data to/from a desktop Access .mdb file from/to the mobile device:
DESKTOPTODEVICE (DesktopLocn, TableList, Sync, Overwrite, DeviceLocn)Specifies the contents of one or more tables to transfer out of the desktop Access .mdb file and into the Pocket Access .cdb file
DEVICETODESKTOP (DesktopLocn, TableList, Sync, Overwrite, DeviceLocn)Specifies the contents of one or more tables to transfer out of the Pocket Access .cdb file and into the desktop Access .mdb file
Because ADOCE (as we will discuss soon) is actually a collection of COM objects, the API can be called from any COM-capable development tool such as eMbedded Visual Basic or eMbedded Visual C++. You can use the API calls listed above to synchronize data, or you can use one of several other options that I'll discuss later. Assuming that you have safely populated your Pocket Access database with data synchronized from a desktop .mdb file, the tables can be queried/updated using standard SQL calls via the ADOCE API. This capability may be enough for simpler applications that are designed for single-user scenarios. Applications that fall into this category might include a mobile golf scorecard, a grocery-list creation program, or a baseball card inventory tool. For applications that require more advanced database capabilities or for those that need to perform custom synchronization tasks, Microsoft recently released SQL Server 2000 Windows CE Edition.